InfinispanHotRodC++Client  8.2.0.Alpha1
 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 
26 // TODO: should we really return references?
28 {
29  public:
30  HR_EXTERN static const char* PROTOCOL_VERSION_10;
31  HR_EXTERN static const char* PROTOCOL_VERSION_11;
32  HR_EXTERN static const char* PROTOCOL_VERSION_12;
33  HR_EXTERN static const char* PROTOCOL_VERSION_13;
34  HR_EXTERN static const char* PROTOCOL_VERSION_20;
35  HR_EXTERN static const char* PROTOCOL_VERSION_21;
36  HR_EXTERN static const char* PROTOCOL_VERSION_22;
37  HR_EXTERN static const char* PROTOCOL_VERSION_23;
38  HR_EXTERN static const char* PROTOCOL_VERSION_24;
39  HR_EXTERN static const char* DEFAULT_CLUSTER_NAME;
40 
41 
42  Configuration(const std::string &_protocolVersion,
43  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
44  int _connectionTimeout,
45  bool _forceReturnValue,
46  int _keySizeEstimate,
47  std::map<std::string,std::vector<ServerConfiguration> > _serversConfiguration,
48  int _socketTimeout,
49  const SslConfiguration _sslConfiguration,
50  bool _tcpNoDelay,
51  int _valueSizeEstimate,
52  int _maxRetries,
53  NearCacheConfiguration _nearCacheConfiguration,
55  const event::EventMarshaller &eventMarshaller = event::JBasicEventMarshaller()):
56  protocolVersion(_protocolVersion), protocolVersionPtr(),
57  connectionPoolConfiguration(_connectionPoolConfiguration),
58  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
59  keySizeEstimate(_keySizeEstimate),
60  serversMap(_serversConfiguration),
61  socketTimeout(_socketTimeout), securityConfiguration(_sslConfiguration),tcpNoDelay(_tcpNoDelay),
62  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
63  eventMarshaller(eventMarshaller)
64  {}
65 
66  Configuration(const std::string &_protocolVersion,
67  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
68  int _connectionTimeout,
69  bool _forceReturnValue,
70  int _keySizeEstimate,
71  std::map<std::string,std::vector<ServerConfiguration> > _serversConfiguration,
72  int _socketTimeout,
73  const SecurityConfiguration _securityConfiguration,
74  bool _tcpNoDelay,
75  int _valueSizeEstimate,
76  int _maxRetries,
77  NearCacheConfiguration _nearCacheConfiguration,
79  const event::EventMarshaller &eventMarshaller = event::JBasicEventMarshaller()):
80  protocolVersion(_protocolVersion), protocolVersionPtr(),
81  connectionPoolConfiguration(_connectionPoolConfiguration),
82  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
83  keySizeEstimate(_keySizeEstimate),
84  serversMap(_serversConfiguration),
85  socketTimeout(_socketTimeout), securityConfiguration(_securityConfiguration),tcpNoDelay(_tcpNoDelay),
86  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
87  eventMarshaller(eventMarshaller)
88  {}
89 
90 
95  HR_EXTERN const std::string &getProtocolVersion() const {
96  if (protocolVersionPtr.get() == NULL) {
97  const_cast<Configuration *>(this)->protocolVersionPtr
98  .reset(new std::string(protocolVersion.c_str()));
99  }
100  return *(protocolVersionPtr.get());
101  }
102 
110  HR_EXTERN const char *getProtocolVersionCString() const;
111 
118 
124  HR_EXTERN const int& getConnectionTimeout() const;
125 
133  HR_EXTERN const bool& isForceReturnValue() const;
134 
140  HR_EXTERN const int& getKeySizeEstimate() const;
141 
148  std::map<std::string, std::vector<ServerConfiguration> > getServersMapConfiguration() const {
149  std::map<std::string, std::vector<ServerConfiguration> > temp;
150  return serversMap;
151  }
152 
158  HR_EXTERN const int& getSocketTimeout() const;
159 
166 
172  HR_EXTERN const bool& isTcpNoDelay() const;
173 
179  HR_EXTERN const int& getValueSizeEstimate() const;
180 
186  HR_EXTERN const int& getMaxRetries() const;
187 
189 
190  const SslConfiguration& getSslConfiguration() { return securityConfiguration.getSslConfiguration(); }
191 
193 
194  const NearCacheConfiguration& getNearCacheConfiguration() const { return nearCacheConfiguration; }
195 
196  const SecurityConfiguration& getSecurityConfiguration() const { return securityConfiguration; }
197 
198 private:
199  std::string protocolVersion;
200  std::shared_ptr<std::string> protocolVersionPtr;
201  ConnectionPoolConfiguration connectionPoolConfiguration;
202  int connectionTimeout;
203  bool forceReturnValue;
204  int keySizeEstimate;
205  std::map<std::string,std::vector<ServerConfiguration> > serversMap;
206  int socketTimeout;
207  SecurityConfiguration securityConfiguration;
208  bool tcpNoDelay;
209  int valueSizeEstimate;
210  int maxRetries;
211  const NearCacheConfiguration nearCacheConfiguration;
212  FailOverRequestBalancingStrategy::ProducerFn balancingStrategyProducer;
213  const event::EventMarshaller &eventMarshaller;
214 
215  static void deleteString(std::string *str) { delete str; }
216 };
217 
218 }} // namespace
219 
220 #endif /* ISPN_HOTROD_CONFIGURATION_H */
static HR_EXTERN const char * PROTOCOL_VERSION_10
Definition: Configuration.h:30
const NearCacheConfiguration & getNearCacheConfiguration() const
Definition: Configuration.h:194
HR_EXTERN const event::EventMarshaller & getEventMarshaller() const
static HR_EXTERN const char * PROTOCOL_VERSION_20
Definition: Configuration.h:34
const SecurityConfiguration & getSecurityConfiguration() const
Definition: Configuration.h:196
static HR_EXTERN const char * PROTOCOL_VERSION_13
Definition: Configuration.h:33
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:35
static HR_EXTERN const char * PROTOCOL_VERSION_23
Definition: Configuration.h:37
Definition: JBasicEventMarshaller.h:19
Definition: NearCacheConfiguration.h:19
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())
Definition: Configuration.h:42
HR_EXTERN const int & getKeySizeEstimate() const
static HR_EXTERN const char * PROTOCOL_VERSION_11
Definition: Configuration.h:31
static HR_EXTERN const char * PROTOCOL_VERSION_24
Definition: Configuration.h:38
HR_EXTERN const int & getMaxRetries() const
HR_EXTERN const SslConfiguration & getSslConfiguration() const
HR_EXTERN const std::string & getProtocolVersion() const
Definition: Configuration.h:95
Definition: EventMarshaller.h:17
HR_EXTERN const bool & isForceReturnValue() const
Definition: SslConfiguration.h:10
HR_EXTERN const int & getConnectionTimeout() const
Definition: Configuration.h:27
static HR_EXTERN const char * PROTOCOL_VERSION_22
Definition: Configuration.h:36
HR_EXTERN const char * getProtocolVersionCString() const
FailOverRequestBalancingStrategy *(* ProducerFn)()
Definition: FailOverRequestBalancingStrategy.h:16
std::map< std::string, std::vector< ServerConfiguration > > getServersMapConfiguration() const
Definition: Configuration.h:148
HR_EXTERN const bool & isTcpNoDelay() const
static HR_EXTERN const char * PROTOCOL_VERSION_12
Definition: Configuration.h:32
const SslConfiguration & getSslConfiguration()
Definition: Configuration.h:190
Definition: SecurityConfiguration.h:16
static HR_EXTERN const char * DEFAULT_CLUSTER_NAME
Definition: Configuration.h:39
HR_EXTERN const ConnectionPoolConfiguration & getConnectionPoolConfiguration() 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())
Definition: Configuration.h:66
Definition: ConnectionPoolConfiguration.h:21
const SslConfiguration & getSslConfiguration() const
Definition: SecurityConfiguration.h:23
HR_EXTERN FailOverRequestBalancingStrategy::ProducerFn getBalancingStrategy() const