JBoss Data Grid HotRod C++ Client  7.0.0
 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>
11 #include "ServerConfiguration.h"
12 #include "SslConfiguration.h"
14 
15 namespace infinispan {
16 namespace hotrod {
17 
23 // TODO: should we really return references?
25 {
26  public:
27  HR_EXTERN static const char* PROTOCOL_VERSION_10;
28  HR_EXTERN static const char* PROTOCOL_VERSION_11;
29  HR_EXTERN static const char* PROTOCOL_VERSION_12;
30  HR_EXTERN static const char* PROTOCOL_VERSION_13;
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 
37 
38  Configuration(const std::string &_protocolVersion,
39  const ConnectionPoolConfiguration& _connectionPoolConfiguration,
40  int _connectionTimeout,
41  bool _forceReturnValue,
42  int _keySizeEstimate,
43  std::vector<ServerConfiguration> _serversConfiguration,
44  int _socketTimeout,
45  const SslConfiguration _sslConfiguration,
46  bool _tcpNoDelay,
47  int _valueSizeEstimate,
48  int _maxRetries,
50  protocolVersion(_protocolVersion), protocolVersionPtr(),
51  connectionPoolConfiguration(_connectionPoolConfiguration),
52  connectionTimeout(_connectionTimeout), forceReturnValue(_forceReturnValue),
53  keySizeEstimate(_keySizeEstimate), servers(_serversConfiguration),
54  socketTimeout(_socketTimeout), sslConfiguration(_sslConfiguration),tcpNoDelay(_tcpNoDelay),
55  valueSizeEstimate(_valueSizeEstimate), maxRetries(_maxRetries), balancingStrategyProducer(bsp) {}
56 
61  HR_EXTERN const std::string &getProtocolVersion() const {
62  if (protocolVersionPtr.get() == NULL) {
63  const_cast<Configuration *>(this)->protocolVersionPtr
64  .set(new std::string(protocolVersion.c_string()), &deleteString);
65  }
66  return *(protocolVersionPtr.get());
67  }
68 
76  HR_EXTERN const char *getProtocolVersionCString() const;
77 
84 
90  HR_EXTERN const int& getConnectionTimeout() const;
91 
99  HR_EXTERN const bool& isForceReturnValue() const;
100 
106  HR_EXTERN const int& getKeySizeEstimate() const;
107 
114  std::vector<ServerConfiguration> getServersConfiguration() const {
115  return servers.std_vector();
116  }
117 
123  HR_EXTERN const int& getSocketTimeout() const;
124 
131 
137  HR_EXTERN const bool& isTcpNoDelay() const;
138 
144  HR_EXTERN const int& getValueSizeEstimate() const;
145 
151  HR_EXTERN const int& getMaxRetries() const;
152 
154 
155 private:
156  portable::string protocolVersion;
157  portable::local_ptr<std::string> protocolVersionPtr;
158  ConnectionPoolConfiguration connectionPoolConfiguration;
159  int connectionTimeout;
160  bool forceReturnValue;
161  int keySizeEstimate;
163  int socketTimeout;
164  SslConfiguration sslConfiguration;
165  bool tcpNoDelay;
166  int valueSizeEstimate;
167  int maxRetries;
168  FailOverRequestBalancingStrategy::ProducerFn balancingStrategyProducer;
169 
170  static void deleteString(std::string *str) { delete str; }
171 };
172 
173 }} // namespace
174 
175 #endif /* ISPN_HOTROD_CONFIGURATION_H */
static HR_EXTERN const char * PROTOCOL_VERSION_10
Definition: Configuration.h:27
static HR_EXTERN const char * PROTOCOL_VERSION_20
Definition: Configuration.h:31
static HR_EXTERN const char * PROTOCOL_VERSION_13
Definition: Configuration.h:30
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:32
static HR_EXTERN const char * PROTOCOL_VERSION_23
Definition: Configuration.h:34
Configuration(const std::string &_protocolVersion, const ConnectionPoolConfiguration &_connectionPoolConfiguration, int _connectionTimeout, bool _forceReturnValue, int _keySizeEstimate, std::vector< ServerConfiguration > _serversConfiguration, int _socketTimeout, const SslConfiguration _sslConfiguration, bool _tcpNoDelay, int _valueSizeEstimate, int _maxRetries, FailOverRequestBalancingStrategy::ProducerFn bsp=0)
Definition: Configuration.h:38
const T * get() const
Definition: portable.h:492
HR_EXTERN const int & getKeySizeEstimate() const
static HR_EXTERN const char * PROTOCOL_VERSION_11
Definition: Configuration.h:28
static HR_EXTERN const char * PROTOCOL_VERSION_24
Definition: Configuration.h:35
Definition: portable.h:152
HR_EXTERN const int & getMaxRetries() const
HR_EXTERN const SslConfiguration & getSslConfiguration() const
HR_EXTERN const std::string & getProtocolVersion() const
Definition: Configuration.h:61
const char * c_string() const
Definition: portable.h:104
HR_EXTERN const bool & isForceReturnValue() const
Definition: SslConfiguration.h:10
HR_EXTERN const int & getConnectionTimeout() const
Definition: Configuration.h:24
static HR_EXTERN const char * PROTOCOL_VERSION_22
Definition: Configuration.h:33
HR_EXTERN const char * getProtocolVersionCString() const
FailOverRequestBalancingStrategy *(* ProducerFn)()
Definition: FailOverRequestBalancingStrategy.h:13
std::vector< ServerConfiguration > getServersConfiguration() const
Definition: Configuration.h:114
HR_EXTERN const bool & isTcpNoDelay() const
static HR_EXTERN const char * PROTOCOL_VERSION_12
Definition: Configuration.h:29
HR_EXTERN const ConnectionPoolConfiguration & getConnectionPoolConfiguration() const
Definition: ConnectionPoolConfiguration.h:21
HR_EXTERN FailOverRequestBalancingStrategy::ProducerFn getBalancingStrategy() const
Definition: portable.h:47