summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ServantManager.h
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2003-01-27 21:11:36 +0000
committerMarc Laukien <marc@zeroc.com>2003-01-27 21:11:36 +0000
commite51106b81ce7c098de1bfef0b1cc0fd39763b97f (patch)
tree8b208a4ef512df2a66928fec0de3db28354bcfe6 /cpp/src/Ice/ServantManager.h
parentAdded ICE_UTIL_API for nullHandleAbort (diff)
downloadice-e51106b81ce7c098de1bfef0b1cc0fd39763b97f.tar.bz2
ice-e51106b81ce7c098de1bfef0b1cc0fd39763b97f.tar.xz
ice-e51106b81ce7c098de1bfef0b1cc0fd39763b97f.zip
restructuring
Diffstat (limited to 'cpp/src/Ice/ServantManager.h')
-rw-r--r--cpp/src/Ice/ServantManager.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/cpp/src/Ice/ServantManager.h b/cpp/src/Ice/ServantManager.h
new file mode 100644
index 00000000000..36867fb557f
--- /dev/null
+++ b/cpp/src/Ice/ServantManager.h
@@ -0,0 +1,67 @@
+// **********************************************************************
+//
+// Copyright (c) 2002
+// ZeroC, Inc.
+// Billerica, MA, USA
+//
+// All Rights Reserved.
+//
+// Ice is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by
+// the Free Software Foundation.
+//
+// **********************************************************************
+
+#ifndef ICE_SERVANT_MANAGER_H
+#define ICE_SERVANT_MANAGER_H
+
+#include <IceUtil/Shared.h>
+#include <IceUtil/Mutex.h>
+#include <Ice/ServantManagerF.h>
+#include <Ice/InstanceF.h>
+#include <Ice/ServantLocatorF.h>
+#include <Ice/Identity.h>
+
+namespace Ice
+{
+
+class ObjectAdapterI;
+
+}
+
+namespace IceInternal
+{
+
+class ServantManager : public IceUtil::Shared, public IceUtil::Mutex
+{
+public:
+
+ void addServant(const Ice::ObjectPtr&, const Ice::Identity&);
+ void removeServant(const Ice::Identity&);
+ Ice::ObjectPtr findServant(const Ice::Identity&) const;
+
+ void addServantLocator(const Ice::ServantLocatorPtr& locator, const std::string&);
+ void removeServantLocator(const std::string&);
+ Ice::ServantLocatorPtr findServantLocator(const std::string&) const;
+
+private:
+
+ ServantManager(const InstancePtr&, const std::string&);
+ ~ServantManager();
+ void destroy();
+ friend class Ice::ObjectAdapterI;
+
+ InstancePtr _instance;
+
+ const std::string _adapterName;
+
+ Ice::ObjectDict _servantMap;
+ mutable Ice::ObjectDict::iterator _servantMapHint;
+
+ std::map<std::string, Ice::ServantLocatorPtr> _locatorMap;
+ mutable std::map<std::string, Ice::ServantLocatorPtr>::iterator _locatorMapHint;
+};
+
+}
+
+#endif