ICE 3.4.2
[php5-ice-freebsdport.git] / cpp / test / Ice / background / PluginI.cpp
blob423075c235942306c79a483c73f67f92377fed78
1 // **********************************************************************
2 //
3 // Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
4 //
5 // This copy of Ice is licensed to you under the terms described in the
6 // ICE_LICENSE file included in this distribution.
7 //
8 // **********************************************************************
10 #include <Ice/Initialize.h>
11 #include <Ice/Instance.h>
12 #include <Ice/ProtocolPluginFacade.h>
13 #include <Ice/EndpointFactoryManager.h>
15 #include <PluginI.h>
16 #include <EndpointFactory.h>
18 using namespace std;
20 class TestPluginI : public PluginI
22 public:
24 TestPluginI(const Ice::CommunicatorPtr&);
26 virtual void initialize();
27 virtual void destroy();
29 virtual ConfigurationPtr getConfiguration();
31 private:
33 const Ice::CommunicatorPtr _communicator;
34 const ConfigurationPtr _configuration;
39 // Plugin factory function.
41 extern "C"
44 ICE_DECLSPEC_EXPORT Ice::Plugin*
45 createTestTransport(const Ice::CommunicatorPtr& communicator, const string& name, const Ice::StringSeq& args)
47 return new TestPluginI(communicator);
52 TestPluginI::TestPluginI(const Ice::CommunicatorPtr& communicator) :
53 _communicator(communicator),
54 _configuration(new Configuration())
58 void
59 TestPluginI::initialize()
61 IceInternal::ProtocolPluginFacadePtr facade = IceInternal::getProtocolPluginFacade(_communicator);
63 for(Ice::Short s = 0; s < 100; ++s)
65 IceInternal::EndpointFactoryPtr factory = facade->getEndpointFactory(s);
66 if(factory)
68 facade->addEndpointFactory(new EndpointFactory(factory));
73 void
74 TestPluginI::destroy()
78 ConfigurationPtr
79 TestPluginI::getConfiguration()
81 return _configuration;