diff options
author | Marc Laukien <marc@zeroc.com> | 2003-01-27 21:11:36 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2003-01-27 21:11:36 +0000 |
commit | e51106b81ce7c098de1bfef0b1cc0fd39763b97f (patch) | |
tree | 8b208a4ef512df2a66928fec0de3db28354bcfe6 /cpp/src/Ice/ServantManager.h | |
parent | Added ICE_UTIL_API for nullHandleAbort (diff) | |
download | ice-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.h | 67 |
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 |