diff options
Diffstat (limited to 'cpp/src/IceGrid/NodeI.h')
-rw-r--r-- | cpp/src/IceGrid/NodeI.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/cpp/src/IceGrid/NodeI.h b/cpp/src/IceGrid/NodeI.h index 86114cff85a..d72887d2aa2 100644 --- a/cpp/src/IceGrid/NodeI.h +++ b/cpp/src/IceGrid/NodeI.h @@ -29,12 +29,14 @@ typedef IceUtil::Handle<Activator> ActivatorPtr; class ServerI; typedef IceUtil::Handle<ServerI> ServerIPtr; +class NodeSessionManager; + class NodeI : public Node, public IceUtil::Monitor<IceUtil::Mutex> { public: - NodeI(const Ice::ObjectAdapterPtr&, const ActivatorPtr&, const WaitQueuePtr&, const TraceLevelsPtr&, - const NodePrx&, const std::string&, const UserAccountMapperPrx&); + NodeI(const Ice::ObjectAdapterPtr&, NodeSessionManager&, const ActivatorPtr&, const WaitQueuePtr&, + const TraceLevelsPtr&, const NodePrx&, const std::string&, const UserAccountMapperPrx&); virtual ~NodeI(); virtual void loadServer_async(const AMD_Node_loadServerPtr&, const std::string&, const ServerDescriptorPtr&, @@ -43,6 +45,9 @@ public: virtual void patch(const std::string&, const std::string&, const DistributionDescriptor&, bool, const Ice::Current&); + virtual void replicaAdded(const InternalRegistryPrx&, const Ice::Current&); + virtual void replicaRemoved(const InternalRegistryPrx&, const Ice::Current&); + virtual std::string getName(const Ice::Current& = Ice::Current()) const; virtual std::string getHostname(const Ice::Current& = Ice::Current()) const; virtual LoadInfo getLoad(const Ice::Current& = Ice::Current()) const; @@ -55,16 +60,13 @@ public: TraceLevelsPtr getTraceLevels() const; NodeObserverPrx getObserver() const; UserAccountMapperPrx getUserAccountMapper() const; + PlatformInfo& getPlatformInfo() const { return _platform; } - NodeSessionPrx getSession() const; - void setSession(const NodeSessionPrx&, const NodeObserverPrx&); - int keepAlive(); - void waitForSession(); - void stop(); + NodeSessionPrx registerWithRegistry(const InternalRegistryPrx&); private: - void checkConsistency(); + void checkConsistency(const NodeSessionPrx&); void checkConsistencyNoSync(const Ice::StringSeq&); bool canRemoveServerDirectory(const std::string&); void initObserver(const Ice::StringSeq&); @@ -76,6 +78,7 @@ private: Ice::Identity createServerIdentity(const std::string&); const Ice::ObjectAdapterPtr _adapter; + NodeSessionManager& _sessions; const ActivatorPtr _activator; const WaitQueuePtr _waitQueue; const TraceLevelsPtr _traceLevels; @@ -88,9 +91,8 @@ private: std::string _serversDir; std::string _tmpDir; unsigned long _serial; + IceUtil::Mutex _observerMutex; NodeObserverPrx _observer; - IceUtil::Monitor<IceUtil::Mutex> _sessionMonitor; - NodeSessionPrx _session; mutable PlatformInfo _platform; std::map<std::string, std::set<ServerIPtr> > _serversByApplication; std::set<std::string> _patchInProgress; |