diff options
Diffstat (limited to 'cpp/src/IceGrid/AdapterFactory.h')
-rw-r--r-- | cpp/src/IceGrid/AdapterFactory.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/AdapterFactory.h b/cpp/src/IceGrid/AdapterFactory.h new file mode 100644 index 00000000000..85af7b72a4f --- /dev/null +++ b/cpp/src/IceGrid/AdapterFactory.h @@ -0,0 +1,52 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_GRID_ADAPTER_FACTORY_H +#define ICE_GRID_ADAPTER_FACTORY_H + +#include <IceGrid/Internal.h> +#include <Freeze/EvictorF.h> + +namespace IceGrid +{ + +class TraceLevels; +typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr; + +class AdapterFactory : public Ice::ObjectFactory +{ +public: + + AdapterFactory(const Ice::ObjectAdapterPtr&, const TraceLevelsPtr&, const std::string&); + + // + // Ice::ObjectFactory method implementation. + // + virtual Ice::ObjectPtr create(const std::string&); + virtual void destroy(); + + AdapterPrx createStandaloneAdapter(const std::string& name); + +private: + + friend class StandaloneAdapterI; + + void destroy(const Ice::Identity&); + + Ice::ObjectAdapterPtr _adapter; + TraceLevelsPtr _traceLevels; + + Freeze::EvictorPtr _evictor; +}; + +typedef ::IceUtil::Handle< AdapterFactory> AdapterFactoryPtr; + +} + +#endif |