| #ifndef __GEMFIRE_POOL_MANAGER_HPP__ |
| #define __GEMFIRE_POOL_MANAGER_HPP__ |
| |
| /*========================================================================= |
| * Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved. |
| * This product is protected by U.S. and international copyright |
| * and intellectual property laws. Pivotal products are covered by |
| * more patents listed at http://www.pivotal.io/patents. |
| *======================================================================== |
| */ |
| #include "gfcpp_globals.hpp" |
| #include "gf_types.hpp" |
| #include "Pool.hpp" |
| #include "PoolFactory.hpp" |
| #include "Region.hpp" |
| |
| namespace gemfire { |
| |
| typedef HashMapT< CacheableStringPtr, PoolPtr > HashMapOfPools; |
| |
| /** |
| * Manages creation and access to {@link Pool connection pools} for clients. |
| * <p> |
| * To create a pool get a factory by calling {@link #createFactory}. |
| * <p> |
| * To find an existing pool by name call {@link #find}. |
| * <p> |
| * To get rid of all created pools call {@link #close}. |
| * |
| * |
| */ |
| class CPPCACHE_EXPORT PoolManager { |
| public: |
| |
| /** |
| * Creates a new {@link PoolFactory pool factory}, |
| * which is used to configure and create new {@link Pool}s. |
| * @return the new pool factory |
| */ |
| static PoolFactoryPtr createFactory(); |
| |
| /** |
| * Returns a map containing all the pools in this manager. |
| * The keys are pool names |
| * and the values are {@link Pool} instances. |
| * <p> The map contains the pools that this manager knows of at the time of this call. |
| * The map is free to be changed without affecting this manager. |
| * @return a Map that is a snapshot of all the pools currently known to this manager. |
| */ |
| static const HashMapOfPools& getAll(); |
| |
| /** |
| * Find by name an existing connection pool returning |
| * the existing pool or <code>NULLPTR</code> if it does not exist. |
| * @param name is the name of the connection pool |
| * @return the existing connection pool or <code>NULLPTR</code> if it does not exist. |
| */ |
| static PoolPtr find(const char* name); |
| |
| /** |
| * Find the pool used by the given region. |
| * @param region is the region that is using the pool. |
| * @return the pool used by that region or <code> NULLPTR </code> if the region does |
| * not have a pool. |
| */ |
| static PoolPtr find(RegionPtr region); |
| |
| /** |
| * Unconditionally destroys all created pools that are in this manager. |
| * @param keepAlive defines whether the server should keep the durable client's subscriptions alive for the <code>durable-client-timeout</code>. |
| * @see DistributedSystem#connect for a description of <code>durable-client-timeout</code>. |
| */ |
| static void close(bool keepAlive = false); |
| |
| private: |
| PoolManager(); |
| }; |
| |
| }; // Namespace gemfire |
| #endif //__GEMFIRE_POOL_MANAGER_HPP__ |