00001 #ifndef __GEMFIRE_POOL_HPP__
00002 #define __GEMFIRE_POOL_HPP__
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "gfcpp_globals.hpp"
00012 #include "SharedBase.hpp"
00013 #include "gf_types.hpp"
00014 #include "CacheableBuiltins.hpp"
00015 #include "Cache.hpp"
00016 #include "CacheFactory.hpp"
00021 namespace gemfire
00022 {
00023 class Cache;
00024 class CacheFactory;
00025 class PoolAttributes;
00038 class CPPCACHE_EXPORT Pool: public SharedBase {
00039 public:
00046 virtual const char* getName()const = 0;
00047
00052 int getFreeConnectionTimeout()const;
00057 int getLoadConditioningInterval()const;
00062 int getSocketBufferSize()const;
00067 int getReadTimeout()const;
00072 int getMinConnections()const;
00077 int getMaxConnections()const;
00082 long getIdleTimeout()const;
00087 long getPingInterval()const;
00092 long getUpdateLocatorListInterval()const;
00097 int getStatisticInterval()const;
00102 int getRetryAttempts()const;
00107 bool getSubscriptionEnabled()const;
00112 int getSubscriptionRedundancy()const;
00117 int getSubscriptionMessageTrackingTimeout()const;
00122 int getSubscriptionAckInterval()const;
00123
00128 const char* getServerGroup()const;
00129
00134 bool getThreadLocalConnections() const;
00135
00140 bool getMultiuserAuthentication() const;
00141
00146 bool getPRSingleHopEnabled() const;
00147
00156 virtual void releaseThreadLocalConnection() = 0;
00157
00165 virtual const CacheableStringArrayPtr getLocators()const = 0;
00166
00173 virtual const CacheableStringArrayPtr getServers() = 0;
00174
00183 virtual void destroy(bool keepAlive = false) = 0;
00184
00191 virtual bool isDestroyed()const = 0;
00192
00193
00205 virtual QueryServicePtr getQueryService() = 0;
00206
00207 virtual ~Pool();
00208
00241 int getPendingEventCount() const;
00242
00243 protected:
00244 Pool(PoolAttributesPtr attr);
00245 PoolAttributesPtr m_attrs;
00246
00247 private:
00256 virtual RegionServicePtr createSecureUserCache(PropertiesPtr credentials);
00257
00258 Pool(const Pool&);
00259
00260 friend class PoolFactory;
00261 friend class CacheFactory;
00262 friend class Cache;
00263 };
00264 }
00265
00266 #endif //ifndef __GEMFIRE_POOL_HPP__