Hazelcast C++ Client
ClientProperties.h
1 /*
2  * Copyright (c) 2008-2018, Hazelcast, Inc. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 //
17 // Created by sancar koyunlu on 21/08/14.
18 //
19 
20 #ifndef HAZELCAST_ClientProperties
21 #define HAZELCAST_ClientProperties
22 
23 #include <string>
24 
25 #include "hazelcast/util/HazelcastDll.h"
26 #include "hazelcast/util/IOUtil.h"
27 
28 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
29 #pragma warning(push)
30 #pragma warning(disable: 4251) //for dll export
31 #endif
32 
33 namespace hazelcast {
34  namespace client {
35  class ClientConfig;
36 
42  class HAZELCAST_API ClientProperty {
43  public:
44  ClientProperty(ClientConfig& config, const std::string& name, const std::string& defaultValue);
45 
46  std::string getName() const;
47 
48  std::string getValue() const;
49 
50  template <typename T>
51  T get() const {
52  return util::IOUtil::to_value<T>(value);
53  }
54 
55  int getInteger() const;
56 
57  bool getBoolean() const;
58 
59  int64_t getLong() const;
60 
61  const std::string &getDefaultValue() const;
62 
63  private:
64  std::string name;
65  std::string value;
66  std::string defaultValue;
67  };
68 
69 
75  class HAZELCAST_API ClientProperties {
76  public:
77  ClientProperties(ClientConfig& clientConfig);
78 
79  const ClientProperty& getHeartbeatTimeout() const;
80 
81  const ClientProperty& getHeartbeatInterval() const;
82 
83  const ClientProperty& getAwsMemberPort() const;
84 
85  const ClientProperty &getCleanResourcesPeriodMillis() const;
86 
87  const ClientProperty &getInvocationRetryPauseMillis() const;
88 
89  const ClientProperty &getInvocationTimeoutSeconds() const;
90 
91  const ClientProperty &getEventThreadCount() const;
92 
93  const ClientProperty &getEventQueueCapacity() const;
94 
95  const ClientProperty &getInternalExecutorPoolSize() const;
96 
97  const ClientProperty &getShuffleMemberList() const;
98 
99  const ClientProperty &getMaxConcurrentInvocations() const;
100 
101  const ClientProperty &getBackpressureBackoffTimeoutMillis() const;
102 
103  const ClientProperty &getStatisticsEnabled() const;
104 
105  const ClientProperty &getStatisticsPeriodSeconds() const;
106 
115  static const std::string PROP_HEARTBEAT_TIMEOUT;
116  static const std::string PROP_HEARTBEAT_TIMEOUT_DEFAULT;
117 
124  static const std::string PROP_HEARTBEAT_INTERVAL;
125  static const std::string PROP_HEARTBEAT_INTERVAL_DEFAULT;
126 
136  static const std::string PROP_REQUEST_RETRY_COUNT;
137  static const std::string PROP_REQUEST_RETRY_COUNT_DEFAULT;
138 
148  static const std::string PROP_REQUEST_RETRY_WAIT_TIME;
149  static const std::string PROP_REQUEST_RETRY_WAIT_TIME_DEFAULT;
150 
156  static const std::string PROP_AWS_MEMBER_PORT;
157  static const std::string PROP_AWS_MEMBER_PORT_DEFAULT;
158 
162  static const std::string CLEAN_RESOURCES_PERIOD_MILLIS;
163  static const std::string CLEAN_RESOURCES_PERIOD_MILLIS_DEFAULT;
164 
168  static const std::string INVOCATION_RETRY_PAUSE_MILLIS;
169  static const std::string INVOCATION_RETRY_PAUSE_MILLIS_DEFAULT;
170 
181  static const std::string INVOCATION_TIMEOUT_SECONDS;
182  static const std::string INVOCATION_TIMEOUT_SECONDS_DEFAULT;
183 
187  static const std::string EVENT_THREAD_COUNT;
188  static const std::string EVENT_THREAD_COUNT_DEFAULT;
189 
193  static const std::string EVENT_QUEUE_CAPACITY;
194  static const std::string EVENT_QUEUE_CAPACITY_DEFAULT;
195 
196  static const std::string INTERNAL_EXECUTOR_POOL_SIZE;
197  static const std::string INTERNAL_EXECUTOR_POOL_SIZE_DEFAULT;
198 
204  static const std::string SHUFFLE_MEMBER_LIST;
205  static const std::string SHUFFLE_MEMBER_LIST_DEFAULT;
206 
216  static const std::string MAX_CONCURRENT_INVOCATIONS;
217  static const std::string MAX_CONCURRENT_INVOCATIONS_DEFAULT;
218 
230  static const std::string BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS;
231  static const std::string BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS_DEFAULT;
232 
238  static const std::string STATISTICS_ENABLED;
239  static const std::string STATISTICS_ENABLED_DEFAULT;
240 
244  static const std::string STATISTICS_PERIOD_SECONDS;
245  static const std::string STATISTICS_PERIOD_SECONDS_DEFAULT;
246 
247 
248  private:
249  ClientProperty heartbeatTimeout;
250  ClientProperty heartbeatInterval;
251  ClientProperty retryCount;
252  ClientProperty retryWaitTime;
253  ClientProperty awsMemberPort;
254  ClientProperty cleanResourcesPeriod;
255  ClientProperty invocationRetryPauseMillis;
256  ClientProperty invocationTimeoutSeconds;
257  ClientProperty eventThreadCount;
258  ClientProperty eventQueueCapacity;
259  ClientProperty internalExecutorPoolSize;
260  ClientProperty shuffleMemberList;
261  ClientProperty maxConcurrentInvocations;
262  ClientProperty backpressureBackoffTimeoutMillis;
263  ClientProperty statisticsEnabled;
264  ClientProperty statisticsPeriodSeconds;
265  };
266 
267  }
268 }
269 
270 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
271 #pragma warning(pop)
272 #endif
273 
274 #endif //HAZELCAST_ClientProperties
static const std::string PROP_REQUEST_RETRY_COUNT
Client will retry requests which either inherently retryable(idempotent client) or ClientNetworkConfi...
Definition: ClientProperties.h:136
static const std::string PROP_HEARTBEAT_TIMEOUT
Client will be sending heartbeat messages to members and this is the timeout.
Definition: ClientProperties.h:115
static const std::string PROP_AWS_MEMBER_PORT
The discovery mechanism will discover only IP addresses.
Definition: ClientProperties.h:156
static const std::string STATISTICS_PERIOD_SECONDS
The period in seconds the statistics sent to the cluster.
Definition: ClientProperties.h:244
static const std::string EVENT_THREAD_COUNT
Number of the threads to handle the incoming event packets.
Definition: ClientProperties.h:187
static const std::string STATISTICS_ENABLED
Use to enable the client statistics collection.
Definition: ClientProperties.h:238
static const std::string PROP_HEARTBEAT_INTERVAL
Time interval in seconds between heartbeats to nodes from client.
Definition: ClientProperties.h:124
A client property is a configuration for hazelcast client.
Definition: ClientProperties.h:42
Client Properties is an internal class.
Definition: ClientProperties.h:75
static const std::string EVENT_QUEUE_CAPACITY
Capacity of the executor that handles the incoming event packets.
Definition: ClientProperties.h:193
static const std::string INVOCATION_TIMEOUT_SECONDS
When an invocation gets an exception because :
Definition: ClientProperties.h:181
static const std::string PROP_REQUEST_RETRY_WAIT_TIME
Client will retry requests which either inherently retryable(idempotent client) or ClientNetworkConfi...
Definition: ClientProperties.h:148
static const std::string BACKPRESSURE_BACKOFF_TIMEOUT_MILLIS
Control the maximum timeout in millis to wait for an invocation space to be available.
Definition: ClientProperties.h:230
static const std::string MAX_CONCURRENT_INVOCATIONS
The maximum number of concurrent invocations allowed.
Definition: ClientProperties.h:216
static const std::string SHUFFLE_MEMBER_LIST
Client shuffles the given member list to prevent all clients to connect to the same node when this pr...
Definition: ClientProperties.h:204
PN (Positive-Negative) CRDT counter.
Definition: MapEntryView.h:32
static const std::string INVOCATION_RETRY_PAUSE_MILLIS
Pause time between each retry cycle of an invocation in milliseconds.
Definition: ClientProperties.h:168
static const std::string CLEAN_RESOURCES_PERIOD_MILLIS
The period in milliseconds at which the resource cleaning is run (e.g.
Definition: ClientProperties.h:162
HazelcastClient configuration class.
Definition: ClientConfig.h:59