1 #ifndef ISPN_HOTROD_CONFIGURATION_CONFIGURATIONBUILDER_H
2 #define ISPN_HOTROD_CONFIGURATION_CONFIGURATIONBUILDER_H
19 using namespace infinispan::hotrod::event;
21 namespace infinispan {
34 std::vector<ServerConfigurationBuilder>& servers;
51 this->m_maxEntries = maxEntries;
84 m_connectionTimeout(60000),
85 m_forceReturnValue(false),
86 m_keySizeEstimate(64),
88 m_socketTimeout(60000),
90 m_valueSizeEstimate(512),
92 m_balancingStrategyProducer(nullptr),
94 connectionPoolConfigurationBuilder(*this),
96 securityConfigurationBuilder(*this),
97 nearCacheConfigurationBuilder(*this)
119 return servers[servers.size() - 1];
130 std::istringstream originalStream(servers);
131 std::string stringHelper;
132 std::string hostHelper;
133 std::string portHelper;
137 while(std::getline(originalStream,stringHelper,
';')) {
138 std::istringstream singleServerStream(stringHelper);
139 std::getline(singleServerStream,hostHelper,
':');
140 std::getline(singleServerStream,portHelper,
':');
141 std::istringstream portStream(portHelper);
142 portStream >> portInt;
143 addServer().host(hostHelper).port(portInt);
155 return connectionPoolConfigurationBuilder;
164 m_connectionTimeout = connectionTimeout_;
175 m_forceReturnValue = forceReturnValues_;
185 m_keySizeEstimate = keySizeEstimate_;
197 m_protocolVersion = protocolVersion_;
208 m_socketTimeout = socketTimeout_;
218 return securityConfigurationBuilder.getSslConfigurationBuilder();
227 return nearCacheConfigurationBuilder;
236 m_tcpNoDelay = tcpNoDelay_;
246 m_valueSizeEstimate = valueSizeEstimate_;
257 m_maxRetries = maxRetries_;
262 m_balancingStrategyProducer = bsp;
283 std::map<std::string,std::vector<ServerConfiguration>> serversMap;
284 for (
auto p: m_serversMap)
286 std::vector<ServerConfiguration> scVec;
287 for (
auto e : p.second)
289 scVec.push_back(e.create());
291 serversMap.insert(std::make_pair(p.first, scVec));
293 if (serversMap.size()==0)
295 std::vector<ServerConfiguration> scVec;
301 connectionPoolConfigurationBuilder.create(),
307 securityConfigurationBuilder.create(),
311 nearCacheConfigurationBuilder.create(),
312 m_balancingStrategyProducer,
338 return securityConfigurationBuilder;
341 int m_connectionTimeout;
342 bool m_forceReturnValue;
343 int m_keySizeEstimate;
344 std::string m_protocolVersion;
345 std::map<std::string,std::vector<ServerConfigurationBuilder> >m_serversMap;
348 int m_valueSizeEstimate;
361 #endif // ISPN_HOTROD_CONFIGURATION_CONFIGURATIONBUILDER_H
ConfigurationBuilder & addServers(std::string servers)
Definition: ConfigurationBuilder.h:129
ConnectionPoolConfigurationBuilder & connectionPool()
Definition: ConfigurationBuilder.h:154
HR_EXTERN const event::EventMarshaller & getEventMarshaller() const
ConfigurationBuilder & keySizeEstimate(int keySizeEstimate_)
Definition: ConfigurationBuilder.h:184
HR_EXTERN const int & getSocketTimeout() const
void validate()
Definition: ConfigurationBuilder.h:100
NearCacheConfiguration create()
Definition: ConfigurationBuilder.h:64
HR_EXTERN const int & getValueSizeEstimate() const
ConfigurationBuilder()
Definition: ConfigurationBuilder.h:83
ConfigurationBuilder & valueSizeEstimate(int valueSizeEstimate_)
Definition: ConfigurationBuilder.h:245
ConfigurationBuilder & maxRetries(int maxRetries_)
Definition: ConfigurationBuilder.h:256
NearCacheConfigurationBuilder(ConfigurationBuilder &_builder)
Definition: ConfigurationBuilder.h:44
Definition: JBasicEventMarshaller.h:19
Definition: NearCacheConfiguration.h:19
ServerConfigurationBuilder & addServer()
Definition: ConfigurationBuilder.h:112
HR_EXTERN const int & getKeySizeEstimate() const
Definition: SecurityConfigurationBuilder.h:16
Definition: ConnectionPoolConfigurationBuilder.h:15
Definition: ConfigurationBuilder.h:41
Definition: NearCacheConfiguration.h:17
ConfigurationBuilder & socketTimeout(int socketTimeout_)
Definition: ConfigurationBuilder.h:207
Definition: SslConfigurationBuilder.h:12
HR_EXTERN const int & getMaxRetries() const
NearCacheMode
Definition: NearCacheConfiguration.h:17
ConfigurationBuilder & balancingStrategyProducer(FailOverRequestBalancingStrategy::ProducerFn bsp)
Definition: ConfigurationBuilder.h:261
Definition: EventMarshaller.h:17
Definition: ServerConfigurationBuilder.h:25
HR_EXTERN const bool & isForceReturnValue() const
Definition: ConfigurationBuilder.h:24
virtual ServerConfiguration create()
Definition: ServerConfigurationBuilder.h:61
ConfigurationBuilder & forceReturnValues(bool forceReturnValues_)
Definition: ConfigurationBuilder.h:174
HR_EXTERN const int & getConnectionTimeout() const
Definition: Configuration.h:27
NearCacheConfigurationBuilder & maxEntries(int maxEntries=0)
Definition: ConfigurationBuilder.h:50
Configuration create()
Definition: ConfigurationBuilder.h:282
HR_EXTERN const char * getProtocolVersionCString() const
FailOverRequestBalancingStrategy *(* ProducerFn)()
Definition: FailOverRequestBalancingStrategy.h:16
#define __pragma(...)
Definition: defs.h:106
int getMaxEntries() const
Definition: ConfigurationBuilder.h:46
NearCacheConfigurationBuilder & mode(NearCacheMode mode=DISABLED)
Definition: ConfigurationBuilder.h:59
NearCacheConfigurationBuilder & nearCache()
Definition: ConfigurationBuilder.h:226
Definition: ConfigurationBuilder.h:80
HR_EXTERN const bool & isTcpNoDelay() const
Definition: ConfigurationChildBuilder.h:18
NearCacheMode getMode() const
Definition: ConfigurationBuilder.h:55
static HR_EXTERN const char * DEFAULT_CLUSTER_NAME
Definition: Configuration.h:39
Configuration build()
Definition: ConfigurationBuilder.h:272
ConfigurationBuilder & protocolVersion(const std::string &protocolVersion_)
Definition: ConfigurationBuilder.h:196
SslConfigurationBuilder & ssl()
Definition: ConfigurationBuilder.h:217
SecurityConfigurationBuilder & security()
Definition: ConfigurationBuilder.h:336
ConfigurationBuilder & read(Configuration &configuration)
Definition: ConfigurationBuilder.h:323
ClusterConfigurationBuilder(std::vector< ServerConfigurationBuilder > &servers, ConfigurationBuilder &parent)
Definition: ConfigurationBuilder.h:27
ConfigurationBuilder & tcpNoDelay(bool tcpNoDelay_)
Definition: ConfigurationBuilder.h:235
ConfigurationBuilder & connectionTimeout(int connectionTimeout_)
Definition: ConfigurationBuilder.h:163
ClusterConfigurationBuilder addCluster(const std::string &clusterName)
Definition: ConfigurationBuilder.h:102
ClusterConfigurationBuilder & addClusterNode(const std::string host, const int port)
Definition: ConfigurationBuilder.h:28