From 6a43686ce26de5d2d5edf4a485ecff3a242c26b6 Mon Sep 17 00:00:00 2001 From: Joe George Date: Tue, 8 Dec 2015 11:33:42 -0500 Subject: ICE-6908 - Add ValueFactory ValueFactory is a replacement for ObjectFactory (which is still available if needed). It is an interface with only one operation and can has the "delegate" metadata. --- cpp/test/Ice/objects/Client.cpp | 63 ++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 20 deletions(-) (limited to 'cpp/test/Ice/objects/Client.cpp') diff --git a/cpp/test/Ice/objects/Client.cpp b/cpp/test/Ice/objects/Client.cpp index 471f63de90e..cf1e60c1993 100644 --- a/cpp/test/Ice/objects/Client.cpp +++ b/cpp/test/Ice/objects/Client.cpp @@ -26,7 +26,7 @@ function(const string&)> makeFactory() }; } #else -class MyObjectFactory : public Ice::ObjectFactory +class MyValueFactory : public Ice::ValueFactory { public: @@ -69,35 +69,58 @@ public: return 0; } +}; +#endif +class MyObjectFactory : public Ice::ObjectFactory +{ +public: + MyObjectFactory() : _destroyed(false) + { + } + + ~MyObjectFactory() + { + assert(_destroyed); + } + + virtual Ice::ValuePtr create(const string& type) + { + return ICE_NULLPTR; + } + virtual void destroy() { - // Nothing to do + _destroyed = true; } + +private: + bool _destroyed; }; -#endif int run(int, char**, const Ice::CommunicatorPtr& communicator) { #ifdef ICE_CPP11_MAPPING - communicator->addObjectFactory(makeFactory(), "::Test::B"); - communicator->addObjectFactory(makeFactory(), "::Test::C"); - communicator->addObjectFactory(makeFactory(), "::Test::D"); - communicator->addObjectFactory(makeFactory(), "::Test::E"); - communicator->addObjectFactory(makeFactory(), "::Test::F"); - communicator->addObjectFactory(makeFactory(), "::Test::I"); - communicator->addObjectFactory(makeFactory(), "::Test::J"); - communicator->addObjectFactory(makeFactory(), "::Test::H"); + communicator->addValueFactory(makeFactory(), "::Test::B"); + communicator->addValueFactory(makeFactory(), "::Test::C"); + communicator->addValueFactory(makeFactory(), "::Test::D"); + communicator->addValueFactory(makeFactory(), "::Test::E"); + communicator->addValueFactory(makeFactory(), "::Test::F"); + communicator->addValueFactory(makeFactory(), "::Test::I"); + communicator->addValueFactory(makeFactory(), "::Test::J"); + communicator->addValueFactory(makeFactory(), "::Test::H"); + communicator->addObjectFactory(make_shared(), "TestOF"); #else - Ice::ObjectFactoryPtr factory = new MyObjectFactory; - communicator->addObjectFactory(factory, "::Test::B"); - communicator->addObjectFactory(factory, "::Test::C"); - communicator->addObjectFactory(factory, "::Test::D"); - communicator->addObjectFactory(factory, "::Test::E"); - communicator->addObjectFactory(factory, "::Test::F"); - communicator->addObjectFactory(factory, "::Test::I"); - communicator->addObjectFactory(factory, "::Test::J"); - communicator->addObjectFactory(factory, "::Test::H"); + Ice::ValueFactoryPtr factory = new MyValueFactory; + communicator->addValueFactory(factory, "::Test::B"); + communicator->addValueFactory(factory, "::Test::C"); + communicator->addValueFactory(factory, "::Test::D"); + communicator->addValueFactory(factory, "::Test::E"); + communicator->addValueFactory(factory, "::Test::F"); + communicator->addValueFactory(factory, "::Test::I"); + communicator->addValueFactory(factory, "::Test::J"); + communicator->addValueFactory(factory, "::Test::H"); + communicator->addObjectFactory(new MyObjectFactory(), "TestOF"); #endif InitialPrxPtr allTests(const Ice::CommunicatorPtr&); -- cgit v1.2.3