Infinispan HotRod C++ Client  9.1.0.Final
Configuration.h
Go to the documentation of this file.
1 #ifndef ISPN_HOTROD_CONFIGURATION_H
2 #define ISPN_HOTROD_CONFIGURATION_H
3 
4 
5 
6 #include <string>
7 #include <vector>
8 #include <map>
16 
17 
18 namespace infinispan {
19 namespace hotrod {
20 
27 // TODO: should we really return references?
29 {
30  public:
31  HR_EXTERN static const char* PROTOCOL_VERSION_20;
32  HR_EXTERN static const char* PROTOCOL_VERSION_21;
33  HR_EXTERN static const char* PROTOCOL_VERSION_22;
34  HR_EXTERN static const char* PROTOCOL_VERSION_23;
35  HR_EXTERN static const char* PROTOCOL_VERSION_24;
36  HR_EXTERN static const char* PROTOCOL_VERSION_25;
37  HR_EXTERN static const char* PROTOCOL_VERSION_26;
38  HR_EXTERN static const char* PROTOCOL_VERSION_27;
39  HR_EXTERN static const char* PROTOCOL_VERSION_28;
40  HR_EXTERN static const char* DEFAULT_CLUSTER_NAME;
41 
42 
43  Configuration(const std::string &_protocolVersion,
44  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
45  int _connectionTimeout,
46  bool _forceReturnValue,
47  int _keySizeEstimate,
48  std::map<std::string,std::vector<ServerConfiguration> > _serversConfiguration,
49  int _socketTimeout,
50  const SslConfiguration _sslConfiguration,
51  bool _tcpNoDelay,
52  int _valueSizeEstimate,
53  int _maxRetries,
54  NearCacheConfiguration _nearCacheConfiguration,
56  const event::EventMarshaller &eventMarshaller = event::JBasicEventMarshaller(), bool transactional=false):
57  protocolVersion(_protocolVersion), protocolVersionPtr(),
58  connectionPoolConfiguration(_connectionPoolConfiguration),
59  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
60  keySizeEstimate(_keySizeEstimate),
61  serversMap(_serversConfiguration),
62  socketTimeout(_socketTimeout), securityConfiguration(_sslConfiguration),tcpNoDelay(_tcpNoDelay),
63  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
64  eventMarshaller(eventMarshaller), transactional(transactional)
65  {}
66 
67  Configuration(const std::string &_protocolVersion,
68  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
69  int _connectionTimeout,
70  bool _forceReturnValue,
71  int _keySizeEstimate,
72  std::map<std::string,std::vector<ServerConfiguration> > _serversConfiguration,
73  int _socketTimeout,
74  const SecurityConfiguration _securityConfiguration,
75  bool _tcpNoDelay,
76  int _valueSizeEstimate,
77  int _maxRetries,
78  NearCacheConfiguration _nearCacheConfiguration,
80  const event::EventMarshaller &eventMarshaller = event::JBasicEventMarshaller(), bool transactional=false):
81  protocolVersion(_protocolVersion), protocolVersionPtr(),
82  connectionPoolConfiguration(_connectionPoolConfiguration),
83  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
84  keySizeEstimate(_keySizeEstimate),
85  serversMap(_serversConfiguration),
86  socketTimeout(_socketTimeout), securityConfiguration(_securityConfiguration),tcpNoDelay(_tcpNoDelay),
87  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
88  eventMarshaller(eventMarshaller), transactional(transactional)
89  {}
90 
91 
96  HR_EXTERN const std::string &getProtocolVersion() const {
97  if (protocolVersionPtr.get() == NULL) {
98  const_cast<Configuration *>(this)->protocolVersionPtr
99  .reset(new std::string(protocolVersion.c_str()));
100  }
101  return *(protocolVersionPtr.get());
102  }
103 
109  HR_EXTERN const char *getProtocolVersionCString() const;
110 
117 
123  HR_EXTERN const int& getConnectionTimeout() const;
124 
132  HR_EXTERN const bool& isForceReturnValue() const;
133 
139  HR_EXTERN const int& getKeySizeEstimate() const;
140 
147  std::map<std::string, std::vector<ServerConfiguration> > getServersMapConfiguration() const {
148  std::map<std::string, std::vector<ServerConfiguration> > temp;
149  return serversMap;
150  }
151 
157  HR_EXTERN const int& getSocketTimeout() const;
158 
165 
171  HR_EXTERN const bool& isTcpNoDelay() const;
172 
178  HR_EXTERN const int& getValueSizeEstimate() const;
179 
185  HR_EXTERN const int& getMaxRetries() const;
186 
188 
189  const SslConfiguration& getSslConfiguration() { return securityConfiguration.getSslConfiguration(); }
190 
191  HR_EXTERN const event::EventMarshaller &getEventMarshaller() const;
192 
193  const NearCacheConfiguration& getNearCacheConfiguration() const { return nearCacheConfiguration; }
194 
195  const SecurityConfiguration& getSecurityConfiguration() const { return securityConfiguration; }
196 
197  bool isTransactional() const { return transactional; }
198 
199  void setTransactional(bool transactional) { this->transactional = transactional; }
200 
201 private:
202  std::string protocolVersion;
203  std::shared_ptr<std::string> protocolVersionPtr;
204  ConnectionPoolConfiguration connectionPoolConfiguration;
205  int connectionTimeout;
206  bool forceReturnValue;
207  int keySizeEstimate;
208  std::map<std::string,std::vector<ServerConfiguration> > serversMap;
209  int socketTimeout;
210  SecurityConfiguration securityConfiguration;
211  bool tcpNoDelay;
212  int valueSizeEstimate;
213  int maxRetries;
214  const NearCacheConfiguration nearCacheConfiguration;
215  FailOverRequestBalancingStrategy::ProducerFn balancingStrategyProducer;
216  const event::EventMarshaller &eventMarshaller;
217  bool transactional;
218 
219  static void deleteString(std::string *str) { delete str; }
220 };
221 
222 }} // namespace
223 
224 #endif /* ISPN_HOTROD_CONFIGURATION_H */
Configuration(const std::string &_protocolVersion, const ConnectionPoolConfiguration &_connectionPoolConfiguration, int _connectionTimeout, bool _forceReturnValue, int _keySizeEstimate, std::map< std::string, std::vector< ServerConfiguration > > _serversConfiguration, int _socketTimeout, const SslConfiguration _sslConfiguration, bool _tcpNoDelay, int _valueSizeEstimate, int _maxRetries, NearCacheConfiguration _nearCacheConfiguration, FailOverRequestBalancingStrategy::ProducerFn bsp=0, const event::EventMarshaller &eventMarshaller=event::JBasicEventMarshaller(), bool transactional=false)
Definition: Configuration.h:43
HR_EXTERN FailOverRequestBalancingStrategy::ProducerFn getBalancingStrategy() const
static HR_EXTERN const char * PROTOCOL_VERSION_20
Definition: Configuration.h:31
void setTransactional(bool transactional)
Definition: Configuration.h:199
bool isTransactional() const
Definition: Configuration.h:197
HR_EXTERN const int & getKeySizeEstimate() const
#define HR_EXTERN
Definition: ImportExport.h:35
static HR_EXTERN const char * PROTOCOL_VERSION_21
Definition: Configuration.h:32
HR_EXTERN const int & getSocketTimeout() const
static HR_EXTERN const char * PROTOCOL_VERSION_23
Definition: Configuration.h:34
Definition: NearCacheConfiguration.h:32
HR_EXTERN const int & getValueSizeEstimate() const
Configuration(const std::string &_protocolVersion, const ConnectionPoolConfiguration &_connectionPoolConfiguration, int _connectionTimeout, bool _forceReturnValue, int _keySizeEstimate, std::map< std::string, std::vector< ServerConfiguration > > _serversConfiguration, int _socketTimeout, const SecurityConfiguration _securityConfiguration, bool _tcpNoDelay, int _valueSizeEstimate, int _maxRetries, NearCacheConfiguration _nearCacheConfiguration, FailOverRequestBalancingStrategy::ProducerFn bsp=0, const event::EventMarshaller &eventMarshaller=event::JBasicEventMarshaller(), bool transactional=false)
Definition: Configuration.h:67
static HR_EXTERN const char * PROTOCOL_VERSION_26
Definition: Configuration.h:37
HR_EXTERN const char * getProtocolVersionCString() const
static HR_EXTERN const char * PROTOCOL_VERSION_24
Definition: Configuration.h:35
Definition: AuthenticationConfiguration.h:10
HR_EXTERN const event::EventMarshaller & getEventMarshaller() const
Definition: SslConfiguration.h:10
std::map< std::string, std::vector< ServerConfiguration > > getServersMapConfiguration() const
Definition: Configuration.h:147
Definition: Configuration.h:28
HR_EXTERN const std::string & getProtocolVersion() const
Definition: Configuration.h:96
HR_EXTERN const int & getConnectionTimeout() const
static HR_EXTERN const char * PROTOCOL_VERSION_22
Definition: Configuration.h:33
FailOverRequestBalancingStrategy *(* ProducerFn)()
Definition: FailOverRequestBalancingStrategy.h:19
HR_EXTERN const ConnectionPoolConfiguration & getConnectionPoolConfiguration() const
HR_EXTERN const int & getMaxRetries() const
HR_EXTERN const SslConfiguration & getSslConfiguration() const
const SslConfiguration & getSslConfiguration()
Definition: Configuration.h:189
Definition: SecurityConfiguration.h:16
const NearCacheConfiguration & getNearCacheConfiguration() const
Definition: Configuration.h:193
static HR_EXTERN const char * DEFAULT_CLUSTER_NAME
Definition: Configuration.h:40
const SecurityConfiguration & getSecurityConfiguration() const
Definition: Configuration.h:195
static HR_EXTERN const char * PROTOCOL_VERSION_25
Definition: Configuration.h:36
Definition: ConnectionPoolConfiguration.h:21
const SslConfiguration & getSslConfiguration() const
Definition: SecurityConfiguration.h:23
static HR_EXTERN const char * PROTOCOL_VERSION_27
Definition: Configuration.h:38
static HR_EXTERN const char * PROTOCOL_VERSION_28
Definition: Configuration.h:39
HR_EXTERN const bool & isForceReturnValue() const
HR_EXTERN const bool & isTcpNoDelay() const