diff options
author | Joe George <joe@zeroc.com> | 2015-12-10 17:11:29 -0500 |
---|---|---|
committer | Joe George <joe@zeroc.com> | 2015-12-10 17:29:31 -0500 |
commit | ebffd2967b6bab2ebadcfe8bd681ea0b33edde2c (patch) | |
tree | 1328c343a3723d4b021c67933dc3e932f51b0a18 /cpp/src/Ice/ValueFactoryManager.cpp | |
parent | Fix Windows build (diff) | |
download | ice-ebffd2967b6bab2ebadcfe8bd681ea0b33edde2c.tar.bz2 ice-ebffd2967b6bab2ebadcfe8bd681ea0b33edde2c.tar.xz ice-ebffd2967b6bab2ebadcfe8bd681ea0b33edde2c.zip |
Fix ObjectFactory deprecate metadata and cleanup
Diffstat (limited to 'cpp/src/Ice/ValueFactoryManager.cpp')
-rw-r--r-- | cpp/src/Ice/ValueFactoryManager.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/cpp/src/Ice/ValueFactoryManager.cpp b/cpp/src/Ice/ValueFactoryManager.cpp index 141c76d3e63..a1f669cf4c1 100644 --- a/cpp/src/Ice/ValueFactoryManager.cpp +++ b/cpp/src/Ice/ValueFactoryManager.cpp @@ -22,20 +22,6 @@ using namespace IceInternal; IceUtil::Shared* IceInternal::upCast(ValueFactoryManager* p) { return p; } -#ifndef ICE_CPP11_MAPPING -IceUtil::Shared* IceInternal::upCast(ValueFactoryWrapper* p) { return p; } - -ValueFactoryWrapper::ValueFactoryWrapper(const Ice::ObjectFactoryPtr& factory) : _objectFactory(factory) -{ -} - -Ice::ValuePtr -ValueFactoryWrapper::create(const string& id) -{ - return _objectFactory->create(id); -} -#endif - void IceInternal::ValueFactoryManager::add(const ICE_VALUE_FACTORY& factory, const string& id) { @@ -78,6 +64,23 @@ IceInternal::ValueFactoryManager::add(const Ice::ObjectFactoryPtr& factory, cons } )); #else + + class ValueFactoryWrapper: public Ice::ValueFactory + { + public: + ValueFactoryWrapper(const Ice::ObjectFactoryPtr& factory) : _objectFactory(factory) + { + } + + Ice::ValuePtr create(const std::string& id) + { + return _objectFactory->create(id); + } + + private: + Ice::ObjectFactoryPtr _objectFactory; + }; + _factoryMapHint = _factoryMap.insert(_factoryMapHint, pair<const string, ICE_VALUE_FACTORY>(id, new ValueFactoryWrapper(factory))); #endif |