// // Copyright (c) ZeroC, Inc. All rights reserved. // #include #include #include using namespace std; using namespace Test; #ifdef ICE_CPP11_MAPPING template function(string)> makeFactory() { return [](string) { return make_shared(); }; } #else class MyValueFactory : public Ice::ValueFactory { public: virtual Ice::ObjectPtr create(const string& type) { if(type == "::Test::I") { return new II; } else if(type == "::Test::J") { return new JI; } else if(type == "::Test::H") { return new HI; } assert(false); // Should never be reached return 0; } }; #endif class Server : public Test::TestHelper { public: void run(int, char**); }; void Server::run(int argc, char** argv) { Ice::PropertiesPtr properties = createTestProperties(argc, argv); properties->setProperty("Ice.Warn.Dispatch", "0"); Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); #ifdef ICE_CPP11_MAPPING communicator->getValueFactoryManager()->add(makeFactory(), "::Test::I"); communicator->getValueFactoryManager()->add(makeFactory(), "::Test::J"); communicator->getValueFactoryManager()->add(makeFactory(), "::Test::H"); #else Ice::ValueFactoryPtr factory = new MyValueFactory; communicator->getValueFactoryManager()->add(factory, "::Test::I"); communicator->getValueFactoryManager()->add(factory, "::Test::J"); communicator->getValueFactoryManager()->add(factory, "::Test::H"); #endif communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(InitialI, adapter), Ice::stringToIdentity("initial")); adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("test")); adapter->add(ICE_MAKE_SHARED(F2I), Ice::stringToIdentity("F21")); adapter->add(ICE_MAKE_SHARED(UnexpectedObjectExceptionTestI), Ice::stringToIdentity("uoet")); adapter->activate(); serverReady(); communicator->waitForShutdown(); } DEFINE_TEST(Server)