diff options
Diffstat (limited to 'cpp/test/Ice/operations/TestAMDI.cpp')
-rw-r--r-- | cpp/test/Ice/operations/TestAMDI.cpp | 1015 |
1 files changed, 986 insertions, 29 deletions
diff --git a/cpp/test/Ice/operations/TestAMDI.cpp b/cpp/test/Ice/operations/TestAMDI.cpp index 419320fdcc4..68c05fae57b 100644 --- a/cpp/test/Ice/operations/TestAMDI.cpp +++ b/cpp/test/Ice/operations/TestAMDI.cpp @@ -13,60 +13,1015 @@ #include <functional> #include <iterator> +using namespace Ice; +using namespace Test; + using namespace std; +MyDerivedClassI::MyDerivedClassI() : _opByteSOnewayCallCount(0) +{ +} + +bool +MyDerivedClassI::ice_isA(ICE_IN(string) id, const Ice::Current& current) const +{ + test(current.mode == ICE_ENUM(OperationMode, Nonmutating)); +#ifdef ICE_CPP11_MAPPING + return Test::MyDerivedClassDisp::ice_isA(move(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 (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 (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 (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 (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 (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 (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 (exception_ptr)>, + const Ice::Current&) +{ + response(p2, p1, p2); +} + +void +MyDerivedClassI::opString_async(string p1, + string p2, + function<void (const string&, const string&)> response, + function<void (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 (exception_ptr)>, + const Ice::Current&) +{ + response(MyEnum::enum3, p1); +} + +void +MyDerivedClassI::opMyClass_async(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 (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(Test::Structure p1, + Test::Structure p2, + function<void (const Test::Structure&, const Test::Structure&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + Test::Structure p3 = p1; + p3.s.s = "a new string"; + response(p2, p3); +} + +void +MyDerivedClassI::opByteS_async(Test::ByteS p1, + Test::ByteS p2, + function<void (const Test::ByteS&, const Test::ByteS&)> response, + function<void (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(Test::BoolS p1, + Test::BoolS p2, + function<void (const Test::BoolS&, const Test::BoolS&)> response, + function<void (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(Test::ShortS p1, + Test::IntS p2, + Test::LongS p3, + function<void (const Test::LongS&, + const Test::ShortS&, + const Test::IntS&, + const Test::LongS&)> response, + function<void (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(Test::FloatS p1, + Test::DoubleS p2, + function<void (const Test::DoubleS&, + const Test::FloatS&, + const Test::DoubleS&)> response, + function<void (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(Test::StringS p1, + Test::StringS p2, + function<void (const Test::StringS&, const Test::StringS&)> response, + function<void (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(Test::ByteSS p1, + Test::ByteSS p2, + function<void (const Test::ByteSS&, const Test::ByteSS&)> response, + function<void (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(Test::BoolSS p1, + Test::BoolSS p2, + function<void (const Test::BoolSS&, const Test::BoolSS&)> response, + function<void (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(Test::ShortSS p1, + Test::IntSS p2, + Test::LongSS p3, + function<void (const Test::LongSS&, + const Test::ShortSS&, + const Test::IntSS&, + const Test::LongSS&)> response, + function<void (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(Test::FloatSS p1, + Test::DoubleSS p2, + function<void (const Test::DoubleSS&, + const Test::FloatSS&, + const Test::DoubleSS&)> response, + function<void (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(Test::StringSS p1, + Test::StringSS p2, + function<void (const Test::StringSS&, const Test::StringSS&)> response, + function<void (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(Test::StringSSS p1, Test::StringSSS p2, + function<void (const Test::StringSSS&, const Test::StringSSS&)> response, + function<void (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(Test::ByteBoolD p1, Test::ByteBoolD p2, + function<void (const Test::ByteBoolD&, const Test::ByteBoolD&)> response, + function<void (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(Test::ShortIntD p1, Test::ShortIntD p2, + function<void (const Test::ShortIntD&, const Test::ShortIntD&)> response, + function<void (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(Test::LongFloatD p1, Test::LongFloatD p2, + function<void (const Test::LongFloatD&, const Test::LongFloatD&)> response, + function<void (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(Test::StringStringD p1, Test::StringStringD p2, + function<void (const Test::StringStringD&, const Test::StringStringD&)> response, + function<void (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(Test::StringMyEnumD p1, Test::StringMyEnumD p2, + function<void (const Test::StringMyEnumD&, const Test::StringMyEnumD&)> response, + function<void (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(Test::MyEnumStringD p1, Test::MyEnumStringD p2, + function<void (const Test::MyEnumStringD&, const Test::MyEnumStringD&)> response, + function<void (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(Test::MyStructMyEnumD p1, Test::MyStructMyEnumD p2, + function<void (const Test::MyStructMyEnumD&, + const Test::MyStructMyEnumD&)> response, + function<void (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(Test::ByteBoolDS p1, + Test::ByteBoolDS p2, + function<void (const Test::ByteBoolDS&, const Test::ByteBoolDS&)> response, + function<void (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(Test::ShortIntDS p1, + Test::ShortIntDS p2, + function<void (const Test::ShortIntDS&, const Test::ShortIntDS&)> response, + function<void (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(Test::LongFloatDS p1, + Test::LongFloatDS p2, + function<void (const Test::LongFloatDS&, const Test::LongFloatDS&)> response, + function<void (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(Test::StringStringDS p1, + Test::StringStringDS p2, + function<void (const Test::StringStringDS&, const Test::StringStringDS&)> response, + function<void (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(Test::StringMyEnumDS p1, + Test::StringMyEnumDS p2, + function<void (const Test::StringMyEnumDS&, const Test::StringMyEnumDS&)> response, + function<void (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(Test::MyEnumStringDS p1, + Test::MyEnumStringDS p2, + function<void (const Test::MyEnumStringDS&, const Test::MyEnumStringDS&)> response, + function<void (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(Test::MyStructMyEnumDS p1, + Test::MyStructMyEnumDS p2, + function<void (const Test::MyStructMyEnumDS&, + const Test::MyStructMyEnumDS&)> response, + function<void (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(Test::ByteByteSD p1, + Test::ByteByteSD p2, + function<void (const Test::ByteByteSD&, const Test::ByteByteSD&)> response, + function<void (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(Test::BoolBoolSD p1, + Test::BoolBoolSD p2, + function<void (const Test::BoolBoolSD&, const Test::BoolBoolSD&)> response, + function<void (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(Test::ShortShortSD p1, + Test::ShortShortSD p2, + function<void (const Test::ShortShortSD&, const Test::ShortShortSD&)> response, + function<void (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(Test::IntIntSD p1, + Test::IntIntSD p2, + function<void (const Test::IntIntSD&, const Test::IntIntSD&)> response, + function<void (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(Test::LongLongSD p1, + Test::LongLongSD p2, + function<void (const Test::LongLongSD&, const Test::LongLongSD&)> response, + function<void (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(Test::StringFloatSD p1, + Test::StringFloatSD p2, + function<void (const Test::StringFloatSD&, const Test::StringFloatSD&)> response, + function<void (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(Test::StringDoubleSD p1, + Test::StringDoubleSD p2, + function<void (const Test::StringDoubleSD&, + const Test::StringDoubleSD&)> response, + function<void (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(Test::StringStringSD p1, + Test::StringStringSD p2, + function<void (const Test::StringStringSD&, + const Test::StringStringSD&)> response, + function<void (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(Test::MyEnumMyEnumSD p1, + Test::MyEnumMyEnumSD p2, + function<void (const Test::MyEnumMyEnumSD&, + const Test::MyEnumMyEnumSD&)> response, + function<void (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(Test::IntS s, + function<void (const Test::IntS&)> response, + function<void (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(Test::ByteS, + function<void ()> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + IceUtil::Mutex::Lock sync(_mutex); + ++_opByteSOnewayCallCount; + response(); +} + +void +MyDerivedClassI::opByteSOnewayCallCount_async(function<void (int)> response, + function<void (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 (exception_ptr)>, + const Ice::Current& current) +{ + Test::StringStringD r = current.ctx; + response(r); +} + +void +MyDerivedClassI::opDoubleMarshaling_async(Ice::Double p1, + Test::DoubleS p2, + function<void ()> response, + function<void (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 (exception_ptr)>, + const Ice::Current& current) +{ + test(current.mode == OperationMode::Idempotent); + response(); +} + +void +MyDerivedClassI::opNonmutating_async(function<void ()> response, + function<void (exception_ptr)>, + const Ice::Current& current) +{ + test(current.mode == OperationMode::Nonmutating); + response(); +} + +void +MyDerivedClassI::opDerived_async(function<void ()> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(); +} + +void +MyDerivedClassI::opByte1_async(Ice::Byte b, + function<void (Ice::Byte)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(b); +} + +void +MyDerivedClassI::opShort1_async(Ice::Short s, + function<void (Ice::Short)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(s); +} + +void +MyDerivedClassI::opInt1_async(Ice::Int i, + function<void (Ice::Int)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(i); +} + +void +MyDerivedClassI::opLong1_async(Ice::Long l, + function<void (Ice::Long)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(l); +} + +void +MyDerivedClassI::opFloat1_async(Ice::Float f, + function<void (Ice::Float)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(f); +} + +void +MyDerivedClassI::opDouble1_async(Ice::Double d, + function<void (Ice::Double)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(d); +} + +void +MyDerivedClassI::opString1_async(string s, + function<void (const string&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(s); +} + +void +MyDerivedClassI::opStringS1_async(Test::StringS seq, + function<void (const Test::StringS&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(seq); +} + +void +MyDerivedClassI::opByteBoolD1_async(Test::ByteBoolD dict, + function<void (const Test::ByteBoolD&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(dict); +} + +void +MyDerivedClassI::opStringS2_async(Test::StringS seq, + function<void (const Test::StringS&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(seq); +} + +void +MyDerivedClassI::opByteBoolD2_async(Test::ByteBoolD dict, + function<void (const Test::ByteBoolD&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(dict); +} + +void +MyDerivedClassI::opMyStruct1_async(Test::MyStruct1 s, + function<void (const Test::MyStruct1&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(s); +} + +void +MyDerivedClassI::opMyClass1_async(shared_ptr<Test::MyClass1> c, + function<void (const shared_ptr<Test::MyClass1>&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + response(c); +} + +void +MyDerivedClassI::opStringLiterals_async(function<void (const Test::StringS&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + Test::StringS data; + data.push_back(Test::s0); + data.push_back(Test::s1); + data.push_back(Test::s2); + data.push_back(Test::s3); + data.push_back(Test::s4); + data.push_back(Test::s5); + data.push_back(Test::s6); + data.push_back(Test::s7); + data.push_back(Test::s8); + data.push_back(Test::s9); + data.push_back(Test::s10); + + data.push_back(Test::sw0); + data.push_back(Test::sw1); + data.push_back(Test::sw2); + data.push_back(Test::sw3); + data.push_back(Test::sw4); + data.push_back(Test::sw5); + data.push_back(Test::sw6); + data.push_back(Test::sw7); + data.push_back(Test::sw8); + data.push_back(Test::sw9); + data.push_back(Test::sw10); + + data.push_back(Test::ss0); + data.push_back(Test::ss1); + data.push_back(Test::ss2); + data.push_back(Test::ss3); + data.push_back(Test::ss4); + data.push_back(Test::ss5); + + data.push_back(Test::su0); + data.push_back(Test::su1); + data.push_back(Test::su2); + + response(data); +} + +void +MyDerivedClassI::opWStringLiterals_async(function<void (const Test::WStringS&)> response, + function<void (exception_ptr)>, + const Ice::Current&) +{ + Test::WStringS data; + data.push_back(Test::ws0); + data.push_back(Test::ws1); + data.push_back(Test::ws2); + data.push_back(Test::ws3); + data.push_back(Test::ws4); + data.push_back(Test::ws5); + data.push_back(Test::ws6); + data.push_back(Test::ws7); + data.push_back(Test::ws8); + data.push_back(Test::ws9); + data.push_back(Test::ws10); + + data.push_back(Test::wsw0); + data.push_back(Test::wsw1); + data.push_back(Test::wsw2); + data.push_back(Test::wsw3); + data.push_back(Test::wsw4); + data.push_back(Test::wsw5); + data.push_back(Test::wsw6); + data.push_back(Test::wsw7); + data.push_back(Test::wsw8); + data.push_back(Test::wsw9); + data.push_back(Test::wsw10); + + data.push_back(Test::wss0); + data.push_back(Test::wss1); + data.push_back(Test::wss2); + data.push_back(Test::wss3); + data.push_back(Test::wss4); + data.push_back(Test::wss5); + + data.push_back(Test::wsu0); + data.push_back(Test::wsu1); + data.push_back(Test::wsu2); + + response(data); +} +#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) { { @@ -92,7 +1047,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) @@ -156,18 +1111,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 @@ -680,14 +1636,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(); } @@ -863,3 +1819,4 @@ MyDerivedClassI::opWStringLiterals_async(const Test::AMD_MyClass_opWStringLitera data.push_back(Test::wsu2); cb->ice_response(data); } +#endif |