Infinispan HotRod C++ Client  8.3.1.Final
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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_10;
32  HR_EXTERN static const char* PROTOCOL_VERSION_11;
33  HR_EXTERN static const char* PROTOCOL_VERSION_12;
34  HR_EXTERN static const char* PROTOCOL_VERSION_13;
35  HR_EXTERN static const char* PROTOCOL_VERSION_20;
36  HR_EXTERN static const char* PROTOCOL_VERSION_21;
37  HR_EXTERN static const char* PROTOCOL_VERSION_22;
38  HR_EXTERN static const char* PROTOCOL_VERSION_23;
39  HR_EXTERN static const char* PROTOCOL_VERSION_24;
40  HR_EXTERN static const char* PROTOCOL_VERSION_25;
41  HR_EXTERN static const char* PROTOCOL_VERSION_26;
42  HR_EXTERN static const char* PROTOCOL_VERSION_27;
43  HR_EXTERN static const char* PROTOCOL_VERSION_28;
44  HR_EXTERN static const char* DEFAULT_CLUSTER_NAME;
45 
46 
47  Configuration(const std::string &_protocolVersion,
48  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
49  int _connectionTimeout,
50  bool _forceReturnValue,
51  int _keySizeEstimate,
52  std::map<std::string,std::vector<ServerConfiguration> > _serversConfiguration,
53  int _socketTimeout,
54  const SslConfiguration _sslConfiguration,
55  bool _tcpNoDelay,
56  int _valueSizeEstimate,
57  int _maxRetries,
58  NearCacheConfiguration _nearCacheConfiguration,
60  const event::EventMarshaller &eventMarshaller = event::JBasicEventMarshaller(), bool transactional=false):
61  protocolVersion(_protocolVersion), protocolVersionPtr(),
62  connectionPoolConfiguration(_connectionPoolConfiguration),
63  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
64  keySizeEstimate(_keySizeEstimate),
65  serversMap(_serversConfiguration),
66  socketTimeout(_socketTimeout), securityConfiguration(_sslConfiguration),tcpNoDelay(_tcpNoDelay),
67  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
68  eventMarshaller(eventMarshaller), transactional(transactional)
69  {}
70 
71  Configuration(const std::string &_protocolVersion,
72  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
73  int _connectionTimeout,
74  bool _forceReturnValue,
75  int _keySizeEstimate,
76  std::map<std::string,std::vector<ServerConfiguration> > _serversConfiguration,
77  int _socketTimeout,
78  const SecurityConfiguration _securityConfiguration,
79  bool _tcpNoDelay,
80  int _valueSizeEstimate,
81  int _maxRetries,
82  NearCacheConfiguration _nearCacheConfiguration,
84  const event::EventMarshaller &eventMarshaller = event::JBasicEventMarshaller(), bool transactional=false):
85  protocolVersion(_protocolVersion), protocolVersionPtr(),
86  connectionPoolConfiguration(_connectionPoolConfiguration),
87  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
88  keySizeEstimate(_keySizeEstimate),
89  serversMap(_serversConfiguration),
90  socketTimeout(_socketTimeout), securityConfiguration(_securityConfiguration),tcpNoDelay(_tcpNoDelay),
91  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
92  eventMarshaller(eventMarshaller), transactional(transactional)
93  {}
94 
95 
100  HR_EXTERN const std::string &getProtocolVersion() const {
101  if (protocolVersionPtr.get() == NULL) {
102  const_cast<Configuration *>(this)->protocolVersionPtr
103  .reset(new std::string(protocolVersion.c_str()));
104  }
105  return *(protocolVersionPtr.get());
106  }
107 
113  HR_EXTERN const char *getProtocolVersionCString() const;
114 
121 
127  HR_EXTERN const int& getConnectionTimeout() const;
128 
136  HR_EXTERN const bool& isForceReturnValue() const;
137 
143  HR_EXTERN const int& getKeySizeEstimate() const;
144 
151  std::map<std::string, std::vector<ServerConfiguration> > getServersMapConfiguration() const {
152  std::map<std::string, std::vector<ServerConfiguration> > temp;
153  return serversMap;
154  }
155 
161  HR_EXTERN const int& getSocketTimeout() const;
162 
169 
175  HR_EXTERN const bool& isTcpNoDelay() const;
176 
182  HR_EXTERN const int& getValueSizeEstimate() const;
183 
189  HR_EXTERN const int& getMaxRetries() const;
190 
192 
193  const SslConfiguration& getSslConfiguration() { return securityConfiguration.getSslConfiguration(); }
194 
195  HR_EXTERN const event::EventMarshaller &getEventMarshaller() const;
196 
197  const NearCacheConfiguration& getNearCacheConfiguration() const { return nearCacheConfiguration; }
198 
199  const SecurityConfiguration& getSecurityConfiguration() const { return securityConfiguration; }
200 
201  bool isTransactional() const { return transactional; }
202 
203  void setTransactional(bool transactional) { this->transactional = transactional; }
204 
205 private:
206  std::string protocolVersion;
207  std::shared_ptr<std::string> protocolVersionPtr;
208  ConnectionPoolConfiguration connectionPoolConfiguration;
209  int connectionTimeout;
210  bool forceReturnValue;
211  int keySizeEstimate;
212  std::map<std::string,std::vector<ServerConfiguration> > serversMap;
213  int socketTimeout;
214  SecurityConfiguration securityConfiguration;
215  bool tcpNoDelay;
216  int valueSizeEstimate;
217  int maxRetries;
218  const NearCacheConfiguration nearCacheConfiguration;
219  FailOverRequestBalancingStrategy::ProducerFn balancingStrategyProducer;
220  const event::EventMarshaller &eventMarshaller;
221  bool transactional;
222 
223  static void deleteString(std::string *str) { delete str; }
224 };
225 
226 }} // namespace
227 
228 #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:47
static HR_EXTERN const char * PROTOCOL_VERSION_10
Definition: Configuration.h:31
const NearCacheConfiguration & getNearCacheConfiguration() const
Definition: Configuration.h:197
HR_EXTERN const event::EventMarshaller & getEventMarshaller() const
static HR_EXTERN const char * PROTOCOL_VERSION_20
Definition: Configuration.h:35
void setTransactional(bool transactional)
Definition: Configuration.h:203
bool isTransactional() const
Definition: Configuration.h:201
const SecurityConfiguration & getSecurityConfiguration() const
Definition: Configuration.h:199
static HR_EXTERN const char * PROTOCOL_VERSION_13
Definition: Configuration.h:34
HR_EXTERN const int & getSocketTimeout() const
HR_EXTERN const int & getValueSizeEstimate() const
#define HR_EXTERN
Definition: ImportExport.h:35
static HR_EXTERN const char * PROTOCOL_VERSION_21
Definition: Configuration.h:36
static HR_EXTERN const char * PROTOCOL_VERSION_23
Definition: Configuration.h:38
Definition: NearCacheConfiguration.h:32
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:71
HR_EXTERN const int & getKeySizeEstimate() const
static HR_EXTERN const char * PROTOCOL_VERSION_26
Definition: Configuration.h:41
static HR_EXTERN const char * PROTOCOL_VERSION_11
Definition: Configuration.h:32
static HR_EXTERN const char * PROTOCOL_VERSION_24
Definition: Configuration.h:39
HR_EXTERN const int & getMaxRetries() const
HR_EXTERN const SslConfiguration & getSslConfiguration() const
HR_EXTERN const std::string & getProtocolVersion() const
Definition: Configuration.h:100
HR_EXTERN const bool & isForceReturnValue() const
Definition: SslConfiguration.h:10
HR_EXTERN const int & getConnectionTimeout() const
Definition: Configuration.h:28
static HR_EXTERN const char * PROTOCOL_VERSION_22
Definition: Configuration.h:37
HR_EXTERN const char * getProtocolVersionCString() const
FailOverRequestBalancingStrategy *(* ProducerFn)()
Definition: FailOverRequestBalancingStrategy.h:19
std::map< std::string, std::vector< ServerConfiguration > > getServersMapConfiguration() const
Definition: Configuration.h:151
HR_EXTERN const bool & isTcpNoDelay() const
static HR_EXTERN const char * PROTOCOL_VERSION_12
Definition: Configuration.h:33
const SslConfiguration & getSslConfiguration()
Definition: Configuration.h:193
Definition: SecurityConfiguration.h:16
static HR_EXTERN const char * DEFAULT_CLUSTER_NAME
Definition: Configuration.h:44
HR_EXTERN const ConnectionPoolConfiguration & getConnectionPoolConfiguration() const
static HR_EXTERN const char * PROTOCOL_VERSION_25
Definition: Configuration.h:40
Definition: ConnectionPoolConfiguration.h:21
const SslConfiguration & getSslConfiguration() const
Definition: SecurityConfiguration.h:23
static HR_EXTERN const char * PROTOCOL_VERSION_27
Definition: Configuration.h:42
static HR_EXTERN const char * PROTOCOL_VERSION_28
Definition: Configuration.h:43
HR_EXTERN FailOverRequestBalancingStrategy::ProducerFn getBalancingStrategy() const