diff options
Diffstat (limited to 'cpp/test/Ice/slicing/objects/TestI.cpp')
-rw-r--r-- | cpp/test/Ice/slicing/objects/TestI.cpp | 184 |
1 files changed, 125 insertions, 59 deletions
diff --git a/cpp/test/Ice/slicing/objects/TestI.cpp b/cpp/test/Ice/slicing/objects/TestI.cpp index 573460cb5f8..79d8d287782 100644 --- a/cpp/test/Ice/slicing/objects/TestI.cpp +++ b/cpp/test/Ice/slicing/objects/TestI.cpp @@ -12,15 +12,16 @@ #include <TestCommon.h> using namespace Test; +using namespace std; TestI::TestI() { } -Ice::ObjectPtr +Ice::ValuePtr TestI::SBaseAsObject(const ::Ice::Current&) { - SBasePtr sb = new SBase; + SBasePtr sb = ICE_MAKE_SHARED(SBase); sb->sb = "SBase.sb"; return sb; } @@ -28,7 +29,7 @@ TestI::SBaseAsObject(const ::Ice::Current&) SBasePtr TestI::SBaseAsSBase(const ::Ice::Current&) { - SBasePtr sb = new SBase; + SBasePtr sb = ICE_MAKE_SHARED(SBase); sb->sb = "SBase.sb"; return sb; } @@ -36,7 +37,7 @@ TestI::SBaseAsSBase(const ::Ice::Current&) SBasePtr TestI::SBSKnownDerivedAsSBase(const ::Ice::Current&) { - SBSKnownDerivedPtr sbskd = new SBSKnownDerived; + SBSKnownDerivedPtr sbskd = ICE_MAKE_SHARED(SBSKnownDerived); sbskd->sb = "SBSKnownDerived.sb"; sbskd->sbskd = "SBSKnownDerived.sbskd"; return sbskd; @@ -45,7 +46,7 @@ TestI::SBSKnownDerivedAsSBase(const ::Ice::Current&) SBSKnownDerivedPtr TestI::SBSKnownDerivedAsSBSKnownDerived(const ::Ice::Current&) { - SBSKnownDerivedPtr sbskd = new SBSKnownDerived; + SBSKnownDerivedPtr sbskd = ICE_MAKE_SHARED(SBSKnownDerived); sbskd->sb = "SBSKnownDerived.sb"; sbskd->sbskd = "SBSKnownDerived.sbskd"; return sbskd; @@ -54,7 +55,7 @@ TestI::SBSKnownDerivedAsSBSKnownDerived(const ::Ice::Current&) SBasePtr TestI::SBSUnknownDerivedAsSBase(const ::Ice::Current&) { - SBSUnknownDerivedPtr sbsud = new SBSUnknownDerived; + SBSUnknownDerivedPtr sbsud = ICE_MAKE_SHARED(SBSUnknownDerived); sbsud->sb = "SBSUnknownDerived.sb"; sbsud->sbsud = "SBSUnknownDerived.sbsud"; return sbsud; @@ -63,24 +64,24 @@ TestI::SBSUnknownDerivedAsSBase(const ::Ice::Current&) SBasePtr TestI::SBSUnknownDerivedAsSBaseCompact(const ::Ice::Current&) { - SBSUnknownDerivedPtr sbsud = new SBSUnknownDerived; + SBSUnknownDerivedPtr sbsud = ICE_MAKE_SHARED(SBSUnknownDerived); sbsud->sb = "SBSUnknownDerived.sb"; sbsud->sbsud = "SBSUnknownDerived.sbsud"; return sbsud; } -Ice::ObjectPtr +Ice::ValuePtr TestI::SUnknownAsObject(const ::Ice::Current&) { - SUnknownPtr su = new SUnknown; + SUnknownPtr su = ICE_MAKE_SHARED(SUnknown); su->su = "SUnknown.su"; return su; } void -TestI::checkSUnknown(const Ice::ObjectPtr& obj, const ::Ice::Current& current) +TestI::checkSUnknown(ICE_IN(Ice::ValuePtr) obj, const ::Ice::Current& current) { - SUnknownPtr su = SUnknownPtr::dynamicCast(obj); + SUnknownPtr su = ICE_DYNAMIC_CAST(SUnknown, obj); if(current.encoding == Ice::Encoding_1_0) { test(!su); @@ -95,84 +96,94 @@ TestI::checkSUnknown(const Ice::ObjectPtr& obj, const ::Ice::Current& current) BPtr TestI::oneElementCycle(const ::Ice::Current&) { - BPtr b = new B; + BPtr b = ICE_MAKE_SHARED(B); b->sb = "B1.sb"; b->pb = b; +#ifndef ICE_CPP11_MAPPING b->ice_collectable(true); +#endif return b; } BPtr TestI::twoElementCycle(const ::Ice::Current&) { - BPtr b1 = new B; + BPtr b1 = ICE_MAKE_SHARED(B); b1->sb = "B1.sb"; - BPtr b2 = new B; + BPtr b2 = ICE_MAKE_SHARED(B); b2->sb = "B2.sb"; b2->pb = b1; b1->pb = b2; +#ifndef ICE_CPP11_MAPPING b1->ice_collectable(true); +#endif return b1; } BPtr TestI::D1AsB(const ::Ice::Current&) { - D1Ptr d1 = new D1; + D1Ptr d1 = ICE_MAKE_SHARED(D1); d1->sb = "D1.sb"; d1->sd1 = "D1.sd1"; - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->pb = d1; d2->sb = "D2.sb"; d2->sd2 = "D2.sd2"; d2->pd2 = d1; d1->pb = d2; d1->pd1 = d2; +#ifndef ICE_CPP11_MAPPING d1->ice_collectable(true); +#endif return d1; } D1Ptr TestI::D1AsD1(const ::Ice::Current&) { - D1Ptr d1 = new D1; + D1Ptr d1 = ICE_MAKE_SHARED(D1); d1->sb = "D1.sb"; d1->sd1 = "D1.sd1"; - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->pb = d1; d2->sb = "D2.sb"; d2->sd2 = "D2.sd2"; d2->pd2 = d1; d1->pb = d2; d1->pd1 = d2; +#ifndef ICE_CPP11_MAPPING d1->ice_collectable(true); +#endif return d1; } BPtr TestI::D2AsB(const ::Ice::Current&) { - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->sb = "D2.sb"; d2->sd2 = "D2.sd2"; - D1Ptr d1 = new D1; + D1Ptr d1 = ICE_MAKE_SHARED(D1); d1->pb = d2; d1->sb = "D1.sb"; d1->sd1 = "D1.sd1"; d1->pd1 = d2; d2->pb = d1; d2->pd2 = d1; +#ifndef ICE_CPP11_MAPPING d1->ice_collectable(true); +#endif return d2; } void TestI::paramTest1(BPtr& p1, BPtr& p2, const ::Ice::Current&) { - D1Ptr d1 = new D1; + D1Ptr d1 = ICE_MAKE_SHARED(D1); d1->sb = "D1.sb"; d1->sd1 = "D1.sd1"; - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->pb = d1; d2->sb = "D2.sb"; d2->sd2 = "D2.sd2"; @@ -181,7 +192,9 @@ TestI::paramTest1(BPtr& p1, BPtr& p2, const ::Ice::Current&) d1->pd1 = d2; p1 = d1; p2 = d2; +#ifndef ICE_CPP11_MAPPING d1->ice_collectable(true); +#endif } void @@ -194,26 +207,26 @@ TestI::paramTest2(BPtr& p1, BPtr& p2, const ::Ice::Current&) BPtr TestI::paramTest3(BPtr& p1, BPtr& p2, const ::Ice::Current&) { - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->sb = "D2.sb (p1 1)"; d2->pb = 0; d2->sd2 = "D2.sd2 (p1 1)"; p1 = d2; - D1Ptr d1 = new D1; + D1Ptr d1 = ICE_MAKE_SHARED(D1); d1->sb = "D1.sb (p1 2)"; d1->pb = 0; d1->sd1 = "D1.sd2 (p1 2)"; d1->pd1 = 0; d2->pd2 = d1; - D2Ptr d4 = new D2; + D2Ptr d4 = ICE_MAKE_SHARED(D2); d4->sb = "D2.sb (p2 1)"; d4->pb = 0; d4->sd2 = "D2.sd2 (p2 1)"; p2 = d4; - D1Ptr d3 = new D1; + D1Ptr d3 = ICE_MAKE_SHARED(D1); d3->sb = "D1.sb (p2 2)"; d3->pb = 0; d3->sd1 = "D1.sd2 (p2 2)"; @@ -226,12 +239,12 @@ TestI::paramTest3(BPtr& p1, BPtr& p2, const ::Ice::Current&) BPtr TestI::paramTest4(BPtr& p1, const ::Ice::Current&) { - D4Ptr d4 = new D4; + D4Ptr d4 = ICE_MAKE_SHARED(D4); d4->sb = "D4.sb (1)"; d4->pb = 0; - d4->p1 = new B; + d4->p1 = ICE_MAKE_SHARED(B); d4->p1->sb = "B.sb (1)"; - d4->p2 = new B; + d4->p2 = ICE_MAKE_SHARED(B); d4->p2->sb = "B.sb (2)"; p1 = d4; return d4->p2; @@ -254,13 +267,13 @@ TestI::returnTest2(BPtr& p1, BPtr& p2, const ::Ice::Current&) } BPtr -TestI::returnTest3(const BPtr& p1, const BPtr&, const ::Ice::Current&) +TestI::returnTest3(ICE_IN(BPtr) p1, ICE_IN(BPtr), const ::Ice::Current&) { return p1; } SS3 -TestI::sequenceTest(const SS1Ptr& p1, const SS2Ptr& p2, const ::Ice::Current&) +TestI::sequenceTest(ICE_IN(SS1Ptr) p1, ICE_IN(SS2Ptr) p2, const ::Ice::Current&) { SS3 ss; ss.c1 = p1; @@ -269,18 +282,20 @@ TestI::sequenceTest(const SS1Ptr& p1, const SS2Ptr& p2, const ::Ice::Current&) } Test::BDict -TestI::dictionaryTest(const BDict& bin, BDict& bout, const ::Ice::Current&) +TestI::dictionaryTest(ICE_IN(BDict) bin, BDict& bout, const ::Ice::Current&) { int i; for(i = 0; i < 10; ++i) { BPtr b = bin.find(i)->second; - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->sb = b->sb; d2->pb = b->pb; d2->sd2 = "D2"; d2->pd2 = d2; +#ifndef ICE_CPP11_MAPPING d2->ice_collectable(true); +#endif bout[i * 10] = d2; } BDict r; @@ -288,19 +303,21 @@ TestI::dictionaryTest(const BDict& bin, BDict& bout, const ::Ice::Current&) { std::ostringstream s; s << "D1." << i * 20; - D1Ptr d1 = new D1; + D1Ptr d1 = ICE_MAKE_SHARED(D1); d1->sb = s.str(); d1->pb = (i == 0 ? BPtr(0) : r.find((i - 1) * 20)->second); d1->sd1 = s.str(); d1->pd1 = d1; +#ifndef ICE_CPP11_MAPPING d1->ice_collectable(true); +#endif r[i * 20] = d1; } return r; } Test::PBasePtr -TestI::exchangePBase(const Test::PBasePtr& pb, const Ice::Current&) +TestI::exchangePBase(ICE_IN(Test::PBasePtr) pb, const Ice::Current&) { return pb; } @@ -308,7 +325,7 @@ TestI::exchangePBase(const Test::PBasePtr& pb, const Ice::Current&) Test::PreservedPtr TestI::PBSUnknownAsPreserved(const Ice::Current& current) { - PSUnknownPtr r = new PSUnknown; + PSUnknownPtr r = ICE_MAKE_SHARED(PSUnknown); r->pi = 5; r->ps = "preserved"; r->psu = "unknown"; @@ -319,15 +336,15 @@ TestI::PBSUnknownAsPreserved(const Ice::Current& current) // 1.0 encoding doesn't support unmarshaling unknown classes even if referenced // from unread slice. // - r->cl = new MyClass(15); + r->cl = ICE_MAKE_SHARED(MyClass, 15); } return r; } void -TestI::checkPBSUnknown(const Test::PreservedPtr& p, const Ice::Current& current) +TestI::checkPBSUnknown(ICE_IN(Test::PreservedPtr) p, const Ice::Current& current) { - PSUnknownPtr pu = PSUnknownPtr::dynamicCast(p); + PSUnknownPtr pu = ICE_DYNAMIC_CAST(PSUnknown, p); if(current.encoding == Ice::Encoding_1_0) { test(!pu); @@ -345,26 +362,37 @@ TestI::checkPBSUnknown(const Test::PreservedPtr& p, const Ice::Current& current) } } +#ifdef ICE_CPP11_MAPPING +void +TestI::PBSUnknownAsPreservedWithGraphAsync(function<void(const shared_ptr<Test::Preserved>&)> response, + function<void(exception_ptr)>, + const Ice::Current&) +#else void TestI::PBSUnknownAsPreservedWithGraph_async(const Test::AMD_TestIntf_PBSUnknownAsPreservedWithGraphPtr& cb, const Ice::Current&) +#endif { - PSUnknownPtr r = new PSUnknown; + PSUnknownPtr r = ICE_MAKE_SHARED(PSUnknown); r->pi = 5; r->ps = "preserved"; r->psu = "unknown"; - r->graph = new PNode; - r->graph->next = new PNode; - r->graph->next->next = new PNode; + r->graph = ICE_MAKE_SHARED(PNode); + r->graph->next = ICE_MAKE_SHARED(PNode); + r->graph->next->next = ICE_MAKE_SHARED(PNode); r->graph->next->next->next = r->graph; +#ifdef ICE_CPP11_MAPPING + response(r); +#else cb->ice_response(r); +#endif r->graph->next->next->next = 0; // Break the cycle. } void -TestI::checkPBSUnknownWithGraph(const Test::PreservedPtr& p, const Ice::Current& current) +TestI::checkPBSUnknownWithGraph(ICE_IN(Test::PreservedPtr) p, const Ice::Current& current) { - PSUnknownPtr pu = PSUnknownPtr::dynamicCast(p); + PSUnknownPtr pu = ICE_DYNAMIC_CAST(PSUnknown, p); if(current.encoding == Ice::Encoding_1_0) { test(!pu); @@ -384,22 +412,33 @@ TestI::checkPBSUnknownWithGraph(const Test::PreservedPtr& p, const Ice::Current& } } +#ifdef ICE_CPP11_MAPPING +void +TestI::PBSUnknown2AsPreservedWithGraphAsync(function<void(const shared_ptr<Test::Preserved>&)> response, + function<void(exception_ptr)>, + const Ice::Current&) +#else void TestI::PBSUnknown2AsPreservedWithGraph_async(const Test::AMD_TestIntf_PBSUnknown2AsPreservedWithGraphPtr& cb, const Ice::Current&) +#endif { - PSUnknown2Ptr r = new PSUnknown2; + PSUnknown2Ptr r = ICE_MAKE_SHARED(PSUnknown2); r->pi = 5; r->ps = "preserved"; r->pb = r; +#ifdef ICE_CPP11_MAPPING + response(r); +#else cb->ice_response(r); +#endif r->pb = 0; // Break the cycle. } void -TestI::checkPBSUnknown2WithGraph(const Test::PreservedPtr& p, const Ice::Current& current) +TestI::checkPBSUnknown2WithGraph(ICE_IN(Test::PreservedPtr) p, const Ice::Current& current) { - PSUnknown2Ptr pu = PSUnknown2Ptr::dynamicCast(p); + PSUnknown2Ptr pu = ICE_DYNAMIC_CAST(PSUnknown2, p); if(current.encoding == Ice::Encoding_1_0) { test(!pu); @@ -417,7 +456,7 @@ TestI::checkPBSUnknown2WithGraph(const Test::PreservedPtr& p, const Ice::Current } Test::PNodePtr -TestI::exchangePNode(const Test::PNodePtr& pn, const Ice::Current&) +TestI::exchangePNode(ICE_IN(Test::PNodePtr) pn, const Ice::Current&) { return pn; } @@ -427,10 +466,12 @@ TestI::throwBaseAsBase(const ::Ice::Current&) { BaseException be; be.sbe = "sbe"; - be.pb = new B; + be.pb = ICE_MAKE_SHARED(B); be.pb->sb = "sb"; be.pb->pb = be.pb; +#ifndef ICE_CPP11_MAPPING be.pb->ice_collectable(true); +#endif throw be; } @@ -439,17 +480,19 @@ TestI::throwDerivedAsBase(const ::Ice::Current&) { DerivedException de; de.sbe = "sbe"; - de.pb = new B; + de.pb = ICE_MAKE_SHARED(B); de.pb->sb = "sb1"; de.pb->pb = de.pb; de.sde = "sde1"; - de.pd1 = new D1; + de.pd1 = ICE_MAKE_SHARED(D1); de.pd1->sb = "sb2"; de.pd1->pb = de.pd1; de.pd1->sd1 = "sd2"; de.pd1->pd1 = de.pd1; +#ifndef ICE_CPP11_MAPPING de.pb->ice_collectable(true); de.pd1->ice_collectable(true); +#endif throw de; } @@ -458,30 +501,33 @@ TestI::throwDerivedAsDerived(const ::Ice::Current&) { DerivedException de; de.sbe = "sbe"; - de.pb = new B; + de.pb = ICE_MAKE_SHARED(B); de.pb->sb = "sb1"; de.pb->pb = de.pb; de.sde = "sde1"; - de.pd1 = new D1; + de.pd1 = ICE_MAKE_SHARED(D1); de.pd1->sb = "sb2"; de.pd1->pb = de.pd1; de.pd1->sd1 = "sd2"; de.pd1->pd1 = de.pd1; +#ifndef ICE_CPP11_MAPPING de.pb->ice_collectable(true); de.pd1->ice_collectable(true); +#endif throw de; } void TestI::throwUnknownDerivedAsBase(const ::Ice::Current&) { - D2Ptr d2 = new D2; + D2Ptr d2 = ICE_MAKE_SHARED(D2); d2->sb = "sb d2"; d2->pb = d2; d2->sd2 = "sd2 d2"; d2->pd2 = d2; +#ifndef ICE_CPP11_MAPPING d2->ice_collectable(true); - +#endif UnknownDerivedException ude; ude.sbe = "sbe"; ude.pb = d2; @@ -490,25 +536,45 @@ TestI::throwUnknownDerivedAsBase(const ::Ice::Current&) throw ude; } +#ifdef ICE_CPP11_MAPPING +void +TestI::throwPreservedExceptionAsync(function<void()>, + function<void(exception_ptr)> exception, + const ::Ice::Current&) +#else void TestI::throwPreservedException_async(const AMD_TestIntf_throwPreservedExceptionPtr& cb, const ::Ice::Current&) +#endif { PSUnknownException ue; - ue.p = new PSUnknown2; + ue.p = ICE_MAKE_SHARED(PSUnknown2); ue.p->pi = 5; ue.p->ps = "preserved"; ue.p->pb = ue.p; +#ifdef ICE_CPP11_MAPPING + try + { + throw ue; + } + catch(...) + { + exception(current_exception()); + } +#else cb->ice_exception(ue); +#endif ue.p->pb = 0; // Break the cycle. } void TestI::useForward(ForwardPtr& f, const ::Ice::Current&) { - f = new Forward; - f->h = new Hidden; + f = ICE_MAKE_SHARED(Forward); + f->h = ICE_MAKE_SHARED(Hidden); f->h->f = f; +#ifndef ICE_CPP11_MAPPING f->ice_collectable(true); +#endif } void |