1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 #include <Ice/ProtocolPluginFacade.h> 6 #include <Ice/Instance.h> 7 #include <Ice/EndpointFactoryManager.h> 8 #include <Ice/TraceLevels.h> 9 #include <Ice/Initialize.h> 10 #include <Ice/DefaultsAndOverrides.h> 11 12 using namespace std; 13 using namespace Ice; 14 using namespace IceInternal; 15 upCast(ProtocolPluginFacade * p)16IceUtil::Shared* IceInternal::upCast(ProtocolPluginFacade* p) { return p; } 17 ~ProtocolPluginFacade()18IceInternal::ProtocolPluginFacade::~ProtocolPluginFacade() 19 { 20 // Out of line to avoid weak vtable 21 } 22 23 ProtocolPluginFacadePtr getProtocolPluginFacade(const CommunicatorPtr & communicator)24IceInternal::getProtocolPluginFacade(const CommunicatorPtr& communicator) 25 { 26 return new ProtocolPluginFacade(communicator); 27 } 28 29 CommunicatorPtr getCommunicator() const30IceInternal::ProtocolPluginFacade::getCommunicator() const 31 { 32 return _communicator; 33 } 34 35 void addEndpointFactory(const EndpointFactoryPtr & factory) const36IceInternal::ProtocolPluginFacade::addEndpointFactory(const EndpointFactoryPtr& factory) const 37 { 38 _instance->endpointFactoryManager()->add(factory); 39 } 40 41 EndpointFactoryPtr getEndpointFactory(Ice::Short type) const42IceInternal::ProtocolPluginFacade::getEndpointFactory(Ice::Short type) const 43 { 44 return _instance->endpointFactoryManager()->get(type); 45 } 46 ProtocolPluginFacade(const CommunicatorPtr & communicator)47IceInternal::ProtocolPluginFacade::ProtocolPluginFacade(const CommunicatorPtr& communicator) : 48 _instance(getInstance(communicator)), 49 _communicator(communicator) 50 { 51 } 52