VMware Tanzu GemFire Native C++ Reference 10.2.7
Pool.hpp
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
20#ifndef GEODE_POOL_H_
21#define GEODE_POOL_H_
22
23#include <chrono>
24#include <iosfwd>
25#include <memory>
26
27#include "Cache.hpp"
28#include "CacheFactory.hpp"
29#include "CacheableBuiltins.hpp"
30#include "internal/chrono/duration.hpp"
31#include "internal/geode_base.hpp"
32#include "internal/geode_globals.hpp"
33
38namespace apache {
39namespace geode {
40namespace client {
41
42class AuthenticatedView;
43class Cache;
44class CacheFactory;
45class PoolAttributes;
46class CacheImpl;
47class Properties;
48class QueryService;
49
63class APACHE_GEODE_EXPORT Pool : public std::enable_shared_from_this<Pool> {
64 public:
71 virtual const std::string& getName() const = 0;
72
77 std::chrono::milliseconds getFreeConnectionTimeout() const;
78
83 std::chrono::milliseconds getLoadConditioningInterval() const;
84
90
95 std::chrono::milliseconds getReadTimeout() const;
96
101 std::string getSniProxyHost() const;
102
107 int getSniProxyPort() const;
108
113 int getMinConnections() const;
114
119 int getMaxConnections() const;
120
125 std::chrono::milliseconds getIdleTimeout() const;
126
131 std::chrono::milliseconds getPingInterval() const;
132
137 std::chrono::milliseconds getUpdateLocatorListInterval() const;
138
143 std::chrono::milliseconds getStatisticInterval() const;
144
149 int getRetryAttempts() const;
150
157
163
168 std::chrono::milliseconds getSubscriptionMessageTrackingTimeout() const;
169
174 std::chrono::milliseconds getSubscriptionAckInterval() const;
175
180 const std::string& getServerGroup() const;
181
188
195
201
211
220 virtual const std::shared_ptr<CacheableStringArray> getLocators() const = 0;
221
229 virtual const std::shared_ptr<CacheableStringArray> getServers() = 0;
230
239 virtual void destroy(bool keepAlive = false) = 0;
240
247 virtual bool isDestroyed() const = 0;
248
260 virtual std::shared_ptr<QueryService> getQueryService() = 0;
261
262 virtual ~Pool();
263
297
298 protected:
299 explicit Pool(std::shared_ptr<PoolAttributes> attr);
300 std::shared_ptr<PoolAttributes> m_attrs;
301
302 private:
313 virtual AuthenticatedView createAuthenticatedView(
314 std::shared_ptr<Properties> credentials, CacheImpl* cacheImpl);
315
316 Pool(const Pool&);
317
318 friend class PoolFactory;
319 friend class CacheFactory;
320 friend class CacheImpl;
321};
322
323} // namespace client
324} // namespace geode
325} // namespace apache
326
327#endif // GEODE_POOL_H_
Contains generic template definitions for Cacheable types and instantiations for built-in types.
Creates an authenticated cache view to allow credential based access to region services.
Definition: AuthenticatedView.hpp:46
Top level class for configuring and using Geode on a client.This should be called once to create Cach...
Definition: CacheFactory.hpp:48
A pool of connections to connect from a client to a set of Geode Cache Servers.
Definition: Pool.hpp:63
int getRetryAttempts() const
Gets the retry attempts for this pool.
std::chrono::milliseconds getReadTimeout() const
Returns the read timeout of this pool.
bool getSubscriptionEnabled() const
Returns the true if a server-to-client subscriptions are enabled on this pool.
std::chrono::milliseconds getPingInterval() const
Gets the ping interval for this pool.
std::chrono::milliseconds getSubscriptionMessageTrackingTimeout() const
Returns the subscription message tracking timeout of this pool.
virtual const std::shared_ptr< CacheableStringArray > getServers()=0
Returns an unmodifiable list of servers this pool is using.
std::chrono::milliseconds getIdleTimeout() const
Gets the idle connection timeout for this pool.
std::chrono::milliseconds getFreeConnectionTimeout() const
Returns the connection timeout of this pool.
bool getMultiuserAuthentication() const
Returns true if multiuser authentication is enabled on this pool.
std::string getSniProxyHost() const
Gets the host name of the SniProxy.
virtual const std::string & getName() const =0
Gets the name of the connection pool.
virtual void releaseThreadLocalConnection()=0
If this pool was configured to use threadlocalconnections, then this method will release the connecti...
std::chrono::milliseconds getStatisticInterval() const
Gets the statistic interval for this pool.
int getSubscriptionRedundancy() const
Returns the subscription redundancy level of this pool.
virtual void destroy(bool keepAlive=false)=0
Destroys this pool closing any connections it produced.
const std::string & getServerGroup() const
Returns the server group of this pool.
bool getPRSingleHopEnabled() const
Returns true if single-hop optimization is enabled on this pool.
int getPendingEventCount() const
Returns the approximate number of pending subscription events maintained at server for this durable c...
int getSocketBufferSize() const
Returns the socket buffer size of this pool.
std::chrono::milliseconds getLoadConditioningInterval() const
Returns the load conditioning interval of this pool.
int getMaxConnections() const
Gets the maximum connections for this pool.
virtual const std::shared_ptr< CacheableStringArray > getLocators() const =0
Returns an unmodifiable list locators that this pool is using.
std::chrono::milliseconds getSubscriptionAckInterval() const
Returns the subscription ack interval of this pool.
std::chrono::milliseconds getUpdateLocatorListInterval() const
Gets the update locator list interval for this pool.
int getMinConnections() const
Gets the minimum connections for this pool.
int getSniProxyPort() const
Gets the port of the SniProxy.
virtual std::shared_ptr< QueryService > getQueryService()=0
Returns the QueryService for this Pool.
bool getThreadLocalConnections() const
Returns true if thread local connections are enabled on this pool.
virtual bool isDestroyed() const =0
Indicates whether this Pool has been destroyed.
This interface provides for the configuration and creation of instances of Pool.
Definition: PoolFactory.hpp:68

Apache Geode C++ Cache API Documentation