summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/slicing/objects/TestI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/slicing/objects/TestI.cpp')
-rw-r--r--cpp/test/Ice/slicing/objects/TestI.cpp184
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