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)16 IceUtil::Shared* IceInternal::upCast(ProtocolPluginFacade* p) { return p; }
17 
~ProtocolPluginFacade()18 IceInternal::ProtocolPluginFacade::~ProtocolPluginFacade()
19 {
20     // Out of line to avoid weak vtable
21 }
22 
23 ProtocolPluginFacadePtr
getProtocolPluginFacade(const CommunicatorPtr & communicator)24 IceInternal::getProtocolPluginFacade(const CommunicatorPtr& communicator)
25 {
26     return new ProtocolPluginFacade(communicator);
27 }
28 
29 CommunicatorPtr
getCommunicator() const30 IceInternal::ProtocolPluginFacade::getCommunicator() const
31 {
32     return _communicator;
33 }
34 
35 void
addEndpointFactory(const EndpointFactoryPtr & factory) const36 IceInternal::ProtocolPluginFacade::addEndpointFactory(const EndpointFactoryPtr& factory) const
37 {
38     _instance->endpointFactoryManager()->add(factory);
39 }
40 
41 EndpointFactoryPtr
getEndpointFactory(Ice::Short type) const42 IceInternal::ProtocolPluginFacade::getEndpointFactory(Ice::Short type) const
43 {
44     return _instance->endpointFactoryManager()->get(type);
45 }
46 
ProtocolPluginFacade(const CommunicatorPtr & communicator)47 IceInternal::ProtocolPluginFacade::ProtocolPluginFacade(const CommunicatorPtr& communicator) :
48     _instance(getInstance(communicator)),
49     _communicator(communicator)
50 {
51 }
52