00001 #ifndef __GEMFIRE_DISTRIBUTEDSYSTEM_H__
00002 #define __GEMFIRE_DISTRIBUTEDSYSTEM_H__
00003
00004
00005
00006
00007
00008
00009
00010
00015 #include "gfcpp_globals.hpp"
00016 #include "gf_types.hpp"
00017 #include "ExceptionTypes.hpp"
00018 #include "Properties.hpp"
00019 #include "VectorT.hpp"
00020
00021 namespace gemfire {
00029 class SystemProperties;
00030 class DistributedSystemImpl;
00031 class CacheRegionHelper;
00032 class DiffieHellman;
00033 class TcrConnection;
00034
00035 class CPPCACHE_EXPORT DistributedSystem: public SharedBase {
00036
00040 public:
00041
00052 static DistributedSystemPtr connect(const char* name,
00053 const PropertiesPtr& configPtr = NULLPTR);
00054
00055
00060 static void disconnect();
00061
00066 static SystemProperties* getSystemProperties();
00067
00071 virtual const char * getName() const;
00072
00077 static bool isConnected();
00078
00083 static DistributedSystemPtr getInstance();
00084
00088 virtual ~DistributedSystem();
00089
00090 protected:
00094 DistributedSystem(const char* name);
00095
00096 private:
00097 char* m_name;
00098 static bool m_connected;
00099 static DistributedSystemPtr* m_instance_ptr;
00100
00101
00102 public:
00103 static DistributedSystemImpl *m_impl;
00104 friend class CacheRegionHelper;
00105 friend class DistributedSystemImpl;
00106 friend class TcrConnection;
00107
00108 private:
00109 DistributedSystem( const DistributedSystem& );
00110 const DistributedSystem& operator=( const DistributedSystem& );
00111 };
00112
00113
00114 }
00115
00116 #endif //ifndef __GEMFIRE_DISTRIBUTEDSYSTEM_H__