diff options
Diffstat (limited to 'cpp/test/Ice/operations/TestAMDI.cpp')
-rw-r--r-- | cpp/test/Ice/operations/TestAMDI.cpp | 923 |
1 files changed, 893 insertions, 30 deletions
diff --git a/cpp/test/Ice/operations/TestAMDI.cpp b/cpp/test/Ice/operations/TestAMDI.cpp index 5b64dbfb58b..770e9570e04 100644 --- a/cpp/test/Ice/operations/TestAMDI.cpp +++ b/cpp/test/Ice/operations/TestAMDI.cpp @@ -13,58 +13,919 @@ #include <functional> #include <iterator> +using namespace Ice; +using namespace Test; + +using namespace std; + +MyDerivedClassI::MyDerivedClassI() : _opByteSOnewayCallCount(0) +{ +} + +bool +MyDerivedClassI::ice_isA(const std::string& id, const Ice::Current& current) const +{ + test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); +#ifdef ICE_CPP11_MAPPING + return Test::MyDerivedClassDisp::ice_isA(id, current); +#else + return Test::MyDerivedClass::ice_isA(id, current); +#endif +} + +void +MyDerivedClassI::ice_ping(const Ice::Current& current) const +{ + test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); +#ifdef ICE_CPP11_MAPPING + Test::MyDerivedClassDisp::ice_ping(current); +#else + Test::MyDerivedClass::ice_ping(current); +#endif +} + +std::vector<std::string> +MyDerivedClassI::ice_ids(const Ice::Current& current) const +{ + test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); +#ifdef ICE_CPP11_MAPPING + return Test::MyDerivedClassDisp::ice_ids(current); +#else + return Test::MyDerivedClass::ice_ids(current); +#endif +} + +const std::string& +MyDerivedClassI::ice_id(const Ice::Current& current) const +{ + test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); +#ifdef ICE_CPP11_MAPPING + return Test::MyDerivedClassDisp::ice_id(current); +#else + return Test::MyDerivedClass::ice_id(current); +#endif +} + +#ifdef ICE_CPP11_MAPPING + class Thread_opVoid : public IceUtil::Thread { public: - Thread_opVoid(const Test::AMD_MyClass_opVoidPtr& cb) : - _cb(cb) + Thread_opVoid(function<void ()> response) : + _response(move(response)) { } virtual void run() { - _cb->ice_response(); + _response(); } private: - const Test::AMD_MyClass_opVoidPtr _cb; + function<void ()> _response; }; -MyDerivedClassI::MyDerivedClassI() : _opByteSOnewayCallCount(0) +void +MyDerivedClassI::shutdown_async(function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current& current) { + { + IceUtil::Mutex::Lock sync(_opVoidMutex); + if(_opVoidThread) + { + _opVoidThread->getThreadControl().join(); + _opVoidThread = 0; + } + } + + current.adapter->getCommunicator()->shutdown(); + response(); } -bool -MyDerivedClassI::ice_isA(const std::string& id, const Ice::Current& current) const +void +MyDerivedClassI::delay_async(Ice::Int ms, function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current&) { - test(current.mode == Ice::Nonmutating); - return Test::MyDerivedClass::ice_isA(id, current); + IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(ms)); + response(); } void -MyDerivedClassI::ice_ping(const Ice::Current& current) const +MyDerivedClassI::opVoid_async(function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current& current) { - test(current.mode == Ice::Nonmutating); - Test::MyDerivedClass::ice_ping(current); + test(current.mode == OperationMode::Normal); + + IceUtil::Mutex::Lock sync(_opVoidMutex); + if(_opVoidThread) + { + _opVoidThread->getThreadControl().join(); + _opVoidThread = 0; + } + + _opVoidThread = new Thread_opVoid(response); + _opVoidThread->start(); } -std::vector<std::string> -MyDerivedClassI::ice_ids(const Ice::Current& current) const + +void +MyDerivedClassI::opByte_async(Ice::Byte p1, + Ice::Byte p2, + function<void (Ice::Byte, Ice::Byte)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) { - test(current.mode == Ice::Nonmutating); - return Test::MyDerivedClass::ice_ids(current); + response(p1, p1 ^ p2); } -const std::string& -MyDerivedClassI::ice_id(const Ice::Current& current) const +void +MyDerivedClassI::opBool_async(bool p1, + bool p2, + function<void (bool, bool)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) { - test(current.mode == Ice::Nonmutating); - return Test::MyDerivedClass::ice_id(current); + response(p2, p1); +} + + +void +MyDerivedClassI::opShortIntLong_async(short p1, + int p2, + long long int p3, + function<void (long long int, short, int, long long int)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(p3, p1, p2, p3); +} + + +void +MyDerivedClassI::opFloatDouble_async(float p1, + double p2, + function<void (double, float, double)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(p2, p1, p2); +} + +void +MyDerivedClassI::opString_async(const string& p1, + const string& p2, + function<void (const string&, const string&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(p1 + " " + p2, p2 + " " + p1); +} + + +void +MyDerivedClassI::opMyEnum_async(Test::MyEnum p1, + function<void (Test::MyEnum, Test::MyEnum)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(MyEnum::enum3, p1); +} + +void +MyDerivedClassI::opMyClass_async(const shared_ptr<Test::MyClassPrx>& p1, + function<void (const shared_ptr<Test::MyClassPrx>&, + const shared_ptr<Test::MyClassPrx>&, + const shared_ptr<Test::MyClassPrx>&)> response, + function<void (const exception_ptr&)>, + const Ice::Current& current) +{ + auto p2 = p1; + auto p3 = uncheckedCast<Test::MyClassPrx>(current.adapter->createProxy( + current.adapter->getCommunicator()->stringToIdentity("noSuchIdentity"))); + response(uncheckedCast<Test::MyClassPrx>(current.adapter->createProxy(current.id)), p2, p3); } void +MyDerivedClassI::opStruct_async(const Test::Structure& p1, + const Test::Structure& p2, + function<void (const Test::Structure&, const Test::Structure&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::Structure p3 = p1; + p3.s.s = "a new string"; + response(p2, p3); +} + +void +MyDerivedClassI::opByteS_async(const Test::ByteS& p1, + const Test::ByteS& p2, + function<void (const Test::ByteS&, const Test::ByteS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ByteS p3; + p3.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), p3.begin()); + Test::ByteS r = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(r)); + response(r, p3); +} + +void +MyDerivedClassI::opBoolS_async(const Test::BoolS& p1, + const Test::BoolS& p2, + function<void (const Test::BoolS&, const Test::BoolS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::BoolS p3 = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); + Test::BoolS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opShortIntLongS_async(const Test::ShortS& p1, + const Test::IntS& p2, + const Test::LongS& p3, + function<void (const Test::LongS&, + const Test::ShortS&, + const Test::IntS&, + const Test::LongS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ShortS p4 = p1; + Test::IntS p5; + p5.resize(p2.size()); + std::reverse_copy(p2.begin(), p2.end(), p5.begin()); + Test::LongS p6 = p3; + std::copy(p3.begin(), p3.end(), std::back_inserter(p6)); + response(p3, p4, p5, p6); +} + +void +MyDerivedClassI::opFloatDoubleS_async(const Test::FloatS& p1, + const Test::DoubleS& p2, + function<void (const Test::DoubleS&, + const Test::FloatS&, + const Test::DoubleS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::FloatS p3 = p1; + Test::DoubleS p4; + p4.resize(p2.size()); + std::reverse_copy(p2.begin(), p2.end(), p4.begin()); + Test::DoubleS r = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(r)); + response(r, p3, p4); +} + +void +MyDerivedClassI::opStringS_async(const Test::StringS& p1, + const Test::StringS& p2, + function<void (const Test::StringS&, const Test::StringS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringS p3 = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); + Test::StringS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opByteSS_async(const Test::ByteSS& p1, + const Test::ByteSS& p2, + function<void (const Test::ByteSS&, const Test::ByteSS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ByteSS p3; + p3.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), p3.begin()); + Test::ByteSS r = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(r)); + response(r, p3); +} + +void +MyDerivedClassI::opBoolSS_async(const Test::BoolSS& p1, + const Test::BoolSS& p2, + function<void (const Test::BoolSS&, const Test::BoolSS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + auto p3 = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); + Test::BoolSS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opShortIntLongSS_async(const Test::ShortSS& p1, + const Test::IntSS& p2, + const Test::LongSS& p3, + function<void (const Test::LongSS&, + const Test::ShortSS&, + const Test::IntSS&, + const Test::LongSS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + auto p4 = p1; + Test::IntSS p5; + p5.resize(p2.size()); + std::reverse_copy(p2.begin(), p2.end(), p5.begin()); + auto p6 = p3; + std::copy(p3.begin(), p3.end(), std::back_inserter(p6)); + response(p3, p4, p5, p6); +} + +void +MyDerivedClassI::opFloatDoubleSS_async(const Test::FloatSS& p1, + const Test::DoubleSS& p2, + function<void (const Test::DoubleSS&, + const Test::FloatSS&, + const Test::DoubleSS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::FloatSS p3 = p1; + Test::DoubleSS p4; + p4.resize(p2.size()); + std::reverse_copy(p2.begin(), p2.end(), p4.begin()); + Test::DoubleSS r = p2; + std::copy(p2.begin(), p2.end(), std::back_inserter(r)); + response(r, p3, p4); +} + +void +MyDerivedClassI::opStringSS_async(const Test::StringSS& p1, + const Test::StringSS& p2, + function<void (const Test::StringSS&, const Test::StringSS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringSS p3 = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); + Test::StringSS r; + r.resize(p2.size()); + std::reverse_copy(p2.begin(), p2.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opStringSSS_async(const Test::StringSSS& p1, const Test::StringSSS& p2, + function<void (const Test::StringSSS&, const Test::StringSSS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringSSS p3 = p1; + std::copy(p2.begin(), p2.end(), std::back_inserter(p3)); + Test::StringSSS r; + r.resize(p2.size()); + std::reverse_copy(p2.begin(), p2.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opByteBoolD_async(const Test::ByteBoolD& p1, const Test::ByteBoolD& p2, + function<void (const Test::ByteBoolD&, const Test::ByteBoolD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ByteBoolD p3 = p1; + Test::ByteBoolD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opShortIntD_async(const Test::ShortIntD& p1, const Test::ShortIntD& p2, + function<void (const Test::ShortIntD&, const Test::ShortIntD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ShortIntD p3 = p1; + Test::ShortIntD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opLongFloatD_async(const Test::LongFloatD& p1, const Test::LongFloatD& p2, + function<void (const Test::LongFloatD&, const Test::LongFloatD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::LongFloatD p3 = p1; + Test::LongFloatD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opStringStringD_async(const Test::StringStringD& p1, const Test::StringStringD& p2, + function<void (const Test::StringStringD&, const Test::StringStringD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringStringD p3 = p1; + Test::StringStringD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opStringMyEnumD_async(const Test::StringMyEnumD& p1, const Test::StringMyEnumD& p2, + function<void (const Test::StringMyEnumD&, const Test::StringMyEnumD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringMyEnumD p3 = p1; + Test::StringMyEnumD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opMyEnumStringD_async(const Test::MyEnumStringD& p1, const Test::MyEnumStringD& p2, + function<void (const Test::MyEnumStringD&, const Test::MyEnumStringD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::MyEnumStringD p3 = p1; + Test::MyEnumStringD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opMyStructMyEnumD_async(const Test::MyStructMyEnumD& p1, const Test::MyStructMyEnumD& p2, + function<void (const Test::MyStructMyEnumD&, + const Test::MyStructMyEnumD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::MyStructMyEnumD p3 = p1; + Test::MyStructMyEnumD r = p1; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opByteBoolDS_async(const Test::ByteBoolDS& p1, + const Test::ByteBoolDS& p2, + function<void (const Test::ByteBoolDS&, const Test::ByteBoolDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ByteBoolDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::ByteBoolDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opShortIntDS_async(const Test::ShortIntDS& p1, const Test::ShortIntDS& p2, + function<void (const Test::ShortIntDS&, const Test::ShortIntDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ShortIntDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::ShortIntDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opLongFloatDS_async(const Test::LongFloatDS& p1, + const Test::LongFloatDS& p2, + function<void (const Test::LongFloatDS&, const Test::LongFloatDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::LongFloatDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::LongFloatDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opStringStringDS_async(const Test::StringStringDS& p1, + const Test::StringStringDS& p2, + function<void (const Test::StringStringDS&, const Test::StringStringDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringStringDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::StringStringDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opStringMyEnumDS_async(const Test::StringMyEnumDS& p1, + const Test::StringMyEnumDS& p2, + function<void (const Test::StringMyEnumDS&, const Test::StringMyEnumDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringMyEnumDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::StringMyEnumDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opMyEnumStringDS_async(const Test::MyEnumStringDS& p1, + const Test::MyEnumStringDS& p2, + function<void (const Test::MyEnumStringDS&, const Test::MyEnumStringDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::MyEnumStringDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::MyEnumStringDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opMyStructMyEnumDS_async(const Test::MyStructMyEnumDS& p1, const Test::MyStructMyEnumDS& p2, + function<void (const Test::MyStructMyEnumDS&, + const Test::MyStructMyEnumDS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::MyStructMyEnumDS p3 = p2; + std::copy(p1.begin(), p1.end(), std::back_inserter(p3)); + Test::MyStructMyEnumDS r; + r.resize(p1.size()); + std::reverse_copy(p1.begin(), p1.end(), r.begin()); + response(r, p3); +} + +void +MyDerivedClassI::opByteByteSD_async(const Test::ByteByteSD& p1, const Test::ByteByteSD& p2, + function<void (const Test::ByteByteSD&, const Test::ByteByteSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ByteByteSD p3 = p2; + Test::ByteByteSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opBoolBoolSD_async(const Test::BoolBoolSD& p1, + const Test::BoolBoolSD& p2, + function<void (const Test::BoolBoolSD&, const Test::BoolBoolSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::BoolBoolSD p3 = p2; + Test::BoolBoolSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opShortShortSD_async(const Test::ShortShortSD& p1, + const Test::ShortShortSD& p2, + function<void (const Test::ShortShortSD&, const Test::ShortShortSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::ShortShortSD p3 = p2; + Test::ShortShortSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opIntIntSD_async(const Test::IntIntSD& p1, + const Test::IntIntSD& p2, + function<void (const Test::IntIntSD&, const Test::IntIntSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::IntIntSD p3 = p2; + Test::IntIntSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opLongLongSD_async(const Test::LongLongSD& p1, + const Test::LongLongSD& p2, + function<void (const Test::LongLongSD&, const Test::LongLongSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::LongLongSD p3 = p2; + Test::LongLongSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opStringFloatSD_async(const Test::StringFloatSD& p1, + const Test::StringFloatSD& p2, + function<void (const Test::StringFloatSD&, const Test::StringFloatSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringFloatSD p3 = p2; + Test::StringFloatSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opStringDoubleSD_async(const Test::StringDoubleSD& p1, + const Test::StringDoubleSD& p2, + function<void (const Test::StringDoubleSD&, + const Test::StringDoubleSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringDoubleSD p3 = p2; + Test::StringDoubleSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opStringStringSD_async(const Test::StringStringSD& p1, const Test::StringStringSD& p2, + function<void (const Test::StringStringSD&, + const Test::StringStringSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::StringStringSD p3 = p2; + Test::StringStringSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opMyEnumMyEnumSD_async(const Test::MyEnumMyEnumSD& p1, const Test::MyEnumMyEnumSD& p2, + function<void (const Test::MyEnumMyEnumSD&, + const Test::MyEnumMyEnumSD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::MyEnumMyEnumSD p3 = p2; + Test::MyEnumMyEnumSD r; + std::set_union(p1.begin(), p1.end(), p2.begin(), p2.end(), std::inserter(r, r.end())); + response(r, p3); +} + +void +MyDerivedClassI::opIntS_async(const Test::IntS& s, + function<void (const Test::IntS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Test::IntS r; + std::transform(s.begin(), s.end(), std::back_inserter(r), std::negate<int>()); + response(r); +} + +void +MyDerivedClassI::opByteSOneway_async(const Test::ByteS&, function<void ()> response, function<void (const exception_ptr&)>, + const Ice::Current&) +{ + IceUtil::Mutex::Lock sync(_mutex); + ++_opByteSOnewayCallCount; + response(); +} + +void +MyDerivedClassI::opByteSOnewayCallCount_async(function<void (int)> response, function<void (const exception_ptr&)>, + const Ice::Current&) +{ + IceUtil::Mutex::Lock sync(_mutex); + response(_opByteSOnewayCallCount); + _opByteSOnewayCallCount = 0; +} + +void +MyDerivedClassI::opContext_async(function<void (const Ice::Context&)> response, + function<void (const exception_ptr&)>, + const Ice::Current& current) +{ + Test::StringStringD r = current.ctx; + response(r); +} + +void +MyDerivedClassI::opDoubleMarshaling_async(Ice::Double p1, + const Test::DoubleS& p2, + function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + Ice::Double d = 1278312346.0 / 13.0; + test(p1 == d); + for(unsigned int i = 0; i < p2.size(); ++i) + { + test(p2[i] == d); + } + response(); +} + +void +MyDerivedClassI::opIdempotent_async(function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current& current) +{ + test(current.mode == OperationMode::Idempotent); + response(); +} + +void +MyDerivedClassI::opNonmutating_async(function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current& current) +{ + test(current.mode == OperationMode::Nonmutating); + response(); +} + +void +MyDerivedClassI::opDerived_async(function<void ()> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(); +} + +void +MyDerivedClassI::opByte1_async(Ice::Byte b, + function<void (Ice::Byte)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(b); +} + +void +MyDerivedClassI::opShort1_async(Ice::Short s, + function<void (Ice::Short)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(s); +} + +void +MyDerivedClassI::opInt1_async(Ice::Int i, + function<void (Ice::Int)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(i); +} + +void +MyDerivedClassI::opLong1_async(Ice::Long l, + function<void (Ice::Long)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(l); +} + +void +MyDerivedClassI::opFloat1_async(Ice::Float f, + function<void (Ice::Float)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(f); +} + +void +MyDerivedClassI::opDouble1_async(Ice::Double d, + function<void (Ice::Double)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(d); +} + +void +MyDerivedClassI::opString1_async(const string& s, + function<void (const string&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(s); +} + +void +MyDerivedClassI::opStringS1_async(const Test::StringS& seq, + function<void (const Test::StringS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(seq); +} + +void +MyDerivedClassI::opByteBoolD1_async(const Test::ByteBoolD& dict, + function<void (const Test::ByteBoolD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(dict); +} + +void +MyDerivedClassI::opStringS2_async(const Test::StringS& seq, + function<void (const Test::StringS&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(seq); +} + +void +MyDerivedClassI::opByteBoolD2_async(const Test::ByteBoolD& dict, + function<void (const Test::ByteBoolD&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(dict); +} + +void +MyDerivedClassI::opMyStruct1_async(const Test::MyStruct1& s, + function<void (const Test::MyStruct1&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(s); +} + +void +MyDerivedClassI::opMyClass1_async(const shared_ptr<Test::MyClass1>& c, + function<void (const shared_ptr<Test::MyClass1>&)> response, + function<void (const exception_ptr&)>, + const Ice::Current&) +{ + response(c); +} +#else + +class Thread_opVoid : public IceUtil::Thread +{ +public: + + Thread_opVoid(const Test::AMD_MyClass_opVoidPtr& cb) : + _cb(cb) + { + } + + virtual void run() + { + _cb->ice_response(); + } + +private: + + const Test::AMD_MyClass_opVoidPtr _cb; +}; + +void MyDerivedClassI::shutdown_async(const Test::AMD_MyClass_shutdownPtr& cb, const Ice::Current& current) { { @@ -90,7 +951,7 @@ MyDerivedClassI::delay_async(const Test::AMD_MyClass_delayPtr& cb, Ice::Int ms, void MyDerivedClassI::opVoid_async(const Test::AMD_MyClass_opVoidPtr& cb, const Ice::Current& current) { - test(current.mode == Ice::Normal); + test(current.mode == ICE_ENUM(OperationMode, Normal)); IceUtil::Mutex::Lock sync(_opVoidMutex); if(_opVoidThread) @@ -154,18 +1015,19 @@ MyDerivedClassI::opMyEnum_async(const Test::AMD_MyClass_opMyEnumPtr& cb, Test::MyEnum p1, const Ice::Current&) { - cb->ice_response(Test::enum3, p1); + cb->ice_response(ICE_ENUM(MyEnum, enum3), p1); } void MyDerivedClassI::opMyClass_async(const Test::AMD_MyClass_opMyClassPtr& cb, - const Test::MyClassPrx& p1, + const Test::MyClassPrxPtr& p1, const Ice::Current& current) { - Test::MyClassPrx p2 = p1; - Test::MyClassPrx p3 = Test::MyClassPrx::uncheckedCast(current.adapter->createProxy( - current.adapter->getCommunicator()->stringToIdentity("noSuchIdentity"))); - cb->ice_response(Test::MyClassPrx::uncheckedCast(current.adapter->createProxy(current.id)), p2, p3); + Test::MyClassPrxPtr p2 = p1; + Test::MyClassPrxPtr p3 = ICE_UNCHECKED_CAST( + Test::MyClassPrx, current.adapter->createProxy( + current.adapter->getCommunicator()->stringToIdentity("noSuchIdentity"))); + cb->ice_response(ICE_UNCHECKED_CAST(Test::MyClassPrx, current.adapter->createProxy(current.id)), p2, p3); } void @@ -678,14 +1540,14 @@ MyDerivedClassI::opDoubleMarshaling_async(const Test::AMD_MyClass_opDoubleMarsha void MyDerivedClassI::opIdempotent_async(const Test::AMD_MyClass_opIdempotentPtr& cb, const Ice::Current& current) { - test(current.mode == Ice::Idempotent); + test(current.mode == ICE_ENUM(OperationMode, Idempotent)); cb->ice_response(); } void MyDerivedClassI::opNonmutating_async(const Test::AMD_MyClass_opNonmutatingPtr& cb, const Ice::Current& current) { - test(current.mode == Ice::Nonmutating); + test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); cb->ice_response(); } @@ -776,4 +1638,5 @@ void MyDerivedClassI::opMyClass1_async(const Test::AMD_MyDerivedClass_opMyClass1Ptr& cb, const Test::MyClass1Ptr& c, const Ice::Current&) { cb->ice_response(c); -}
\ No newline at end of file +} +#endif |