JBoss Data Grid HotRod C++ Client  7.1.0
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), sslConfiguration(_sslConfiguration),tcpNoDelay(_tcpNoDelay),
62  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), nearCacheConfiguration(_nearCacheConfiguration), balancingStrategyProducer(bsp),
63  eventMarshaller(eventMarshaller)
64  {}
65 
70  HR_EXTERN const std::string &getProtocolVersion() const {
71  if (protocolVersionPtr.get() == NULL) {
72  const_cast<Configuration *>(this)->protocolVersionPtr
73  .reset(new std::string(protocolVersion.c_str()));
74  }
75  return *(protocolVersionPtr.get());
76  }
77 
85  HR_EXTERN const char *getProtocolVersionCString() const;
86 
93 
99  HR_EXTERN const int& getConnectionTimeout() const;
100 
108  HR_EXTERN const bool& isForceReturnValue() const;
109 
115  HR_EXTERN const int& getKeySizeEstimate() const;
116 
123  std::map<std::string, std::vector<ServerConfiguration> > getServersMapConfiguration() const {
124  std::map<std::string, std::vector<ServerConfiguration> > temp;
125  return serversMap;
126  }
127 
133  HR_EXTERN const int& getSocketTimeout() const;
134 
141 
147  HR_EXTERN const bool& isTcpNoDelay() const;
148 
154  HR_EXTERN const int& getValueSizeEstimate() const;
155 
161  HR_EXTERN const int& getMaxRetries() const;
162 
164 
165  SslConfiguration& getSslConfiguration() { return sslConfiguration; }
167 
168  const NearCacheConfiguration& getNearCacheConfiguration() const { return nearCacheConfiguration; }
169 
170 private:
171  std::string protocolVersion;
172  std::shared_ptr<std::string> protocolVersionPtr;
173  ConnectionPoolConfiguration connectionPoolConfiguration;
174  int connectionTimeout;
175  bool forceReturnValue;
176  int keySizeEstimate;
177  std::map<std::string,std::vector<ServerConfiguration> > serversMap;
178  int socketTimeout;
179  SslConfiguration sslConfiguration;
180  bool tcpNoDelay;
181  int valueSizeEstimate;
182  int maxRetries;
183  const NearCacheConfiguration nearCacheConfiguration;
184  FailOverRequestBalancingStrategy::ProducerFn balancingStrategyProducer;
185  const event::EventMarshaller &eventMarshaller;
186 
187  static void deleteString(std::string *str) { delete str; }
188 };
189 
190 }} // namespace
191 
192 #endif /* ISPN_HOTROD_CONFIGURATION_H */
static HR_EXTERN const char * PROTOCOL_VERSION_10
Definition: Configuration.h:30
const NearCacheConfiguration & getNearCacheConfiguration() const
Definition: Configuration.h:168
HR_EXTERN const event::EventMarshaller & getEventMarshaller() const
static HR_EXTERN const char * PROTOCOL_VERSION_20
Definition: Configuration.h:34
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
SslConfiguration & getSslConfiguration()
Definition: Configuration.h:165
Definition: BasicMarshaller.h:11
HR_EXTERN const int & getMaxRetries() const
HR_EXTERN const SslConfiguration & getSslConfiguration() const
HR_EXTERN const std::string & getProtocolVersion() const
Definition: Configuration.h:70
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
FailOverRequestBalancingStrategy *(* ProducerFn)()
Definition: FailOverRequestBalancingStrategy.h:16
HR_EXTERN const char * getProtocolVersionCString() const
std::map< std::string, std::vector< ServerConfiguration > > getServersMapConfiguration() const
Definition: Configuration.h:123
HR_EXTERN const bool & isTcpNoDelay() const
static HR_EXTERN const char * PROTOCOL_VERSION_12
Definition: Configuration.h:32
static HR_EXTERN const char * DEFAULT_CLUSTER_NAME
Definition: Configuration.h:39
HR_EXTERN const ConnectionPoolConfiguration & getConnectionPoolConfiguration() const
Definition: ConnectionPoolConfiguration.h:21
HR_EXTERN FailOverRequestBalancingStrategy::ProducerFn getBalancingStrategy() const