00001 #ifndef __GEMFIRE_DISTRIBUTEDSYSTEM_H__
00002 #define __GEMFIRE_DISTRIBUTEDSYSTEM_H__
00003
00004
00005
00006
00007
00008
00013 #include "gfcpp_globals.hpp"
00014 #include "gf_types.hpp"
00015 #include "ExceptionTypes.hpp"
00016 #include "Properties.hpp"
00017 #include "VectorT.hpp"
00018
00019 namespace gemfire {
00027 class SystemProperties;
00028 class DistributedSystemImpl;
00029 class CacheRegionHelper;
00030 class DiffieHellman;
00031 class TcrConnection;
00032
00033 class CPPCACHE_EXPORT DistributedSystem: public SharedBase {
00034
00038 public:
00039
00050 static DistributedSystemPtr connect(const char* name,
00051 const PropertiesPtr& configPtr = NULLPTR);
00052
00053
00058 static void disconnect();
00059
00064 static SystemProperties* getSystemProperties();
00065
00069 virtual const char * getName() const;
00070
00075 static bool isConnected();
00076
00081 static DistributedSystemPtr getInstance();
00082
00086 virtual ~DistributedSystem();
00087
00088 protected:
00092 DistributedSystem(const char* name);
00093
00094 private:
00095 char* m_name;
00096 static bool m_connected;
00097 static DistributedSystemPtr* m_instance_ptr;
00098
00099
00100 public:
00101 static DistributedSystemImpl *m_impl;
00102 friend class CacheRegionHelper;
00103 friend class DistributedSystemImpl;
00104 friend class TcrConnection;
00105 };
00106
00107
00108 }
00109
00110 #endif //ifndef __GEMFIRE_DISTRIBUTEDSYSTEM_H__