summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/acm/TestI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/acm/TestI.cpp')
-rw-r--r--cpp/test/Ice/acm/TestI.cpp46
1 files changed, 30 insertions, 16 deletions
diff --git a/cpp/test/Ice/acm/TestI.cpp b/cpp/test/Ice/acm/TestI.cpp
index 7489627e81b..42e0f119cd1 100644
--- a/cpp/test/Ice/acm/TestI.cpp
+++ b/cpp/test/Ice/acm/TestI.cpp
@@ -26,7 +26,13 @@ toString(int value)
return os.str();
}
-class ConnectionCallbackI : public Ice::ConnectionCallback, private IceUtil::Monitor<IceUtil::Mutex>
+class HeartbeatCallbackI :
+#ifdef ICE_CPP11_MAPPING
+ public enable_shared_from_this<HeartbeatCallbackI>,
+#else
+ public Ice::HeartbeatCallback,
+#endif
+ private IceUtil::Monitor<IceUtil::Mutex>
{
public:
@@ -41,8 +47,6 @@ public:
}
}
-private:
-
virtual void
heartbeat(const Ice::ConnectionPtr&)
{
@@ -51,24 +55,25 @@ private:
notifyAll();
}
- virtual void
- closed(const Ice::ConnectionPtr&)
- {
- }
+private:
int _count;
};
-typedef IceUtil::Handle<ConnectionCallbackI> ConnectionCallbackIPtr;
+ICE_DEFINE_PTR(HeartbeatCallbackIPtr, HeartbeatCallbackI);
}
-RemoteObjectAdapterPrx
+RemoteObjectAdapterPrxPtr
RemoteCommunicatorI::createObjectAdapter(int timeout, int close, int heartbeat, const Current& current)
{
Ice::CommunicatorPtr com = current.adapter->getCommunicator();
Ice::PropertiesPtr properties = com->getProperties();
string protocol = properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp");
- string host = properties->getPropertyWithDefault("Ice.Default.Host", "127.0.0.1");
+ string opts;
+ if(protocol != "bt")
+ {
+ opts = " -h \"" + properties->getPropertyWithDefault("Ice.Default.Host", "127.0.0.1") + "\"";
+ }
string name = IceUtil::generateUUID();
if(timeout >= 0)
@@ -84,8 +89,10 @@ RemoteCommunicatorI::createObjectAdapter(int timeout, int close, int heartbeat,
properties->setProperty(name + ".ACM.Heartbeat", toString(heartbeat));
}
properties->setProperty(name + ".ThreadPool.Size", "2");
- ObjectAdapterPtr adapter = com->createObjectAdapterWithEndpoints(name, protocol + " -h \"" + host + "\"");
- return RemoteObjectAdapterPrx::uncheckedCast(current.adapter->addWithUUID(new RemoteObjectAdapterI(adapter)));
+ ObjectAdapterPtr adapter = com->createObjectAdapterWithEndpoints(name, protocol + opts);
+
+ return ICE_UNCHECKED_CAST(RemoteObjectAdapterPrx, current.adapter->addWithUUID(
+ ICE_MAKE_SHARED(RemoteObjectAdapterI, adapter)));
}
void
@@ -96,13 +103,13 @@ RemoteCommunicatorI::shutdown(const Ice::Current& current)
RemoteObjectAdapterI::RemoteObjectAdapterI(const Ice::ObjectAdapterPtr& adapter) :
_adapter(adapter),
- _testIntf(TestIntfPrx::uncheckedCast(_adapter->add(new TestI(),
+ _testIntf(ICE_UNCHECKED_CAST(TestIntfPrx, _adapter->add(ICE_MAKE_SHARED(TestI),
adapter->getCommunicator()->stringToIdentity("test"))))
{
_adapter->activate();
}
-TestIntfPrx
+TestIntfPrxPtr
RemoteObjectAdapterI::getTestIntf(const Ice::Current&)
{
return _testIntf;
@@ -157,7 +164,14 @@ TestI::interruptSleep(const Ice::Current& current)
void
TestI::waitForHeartbeat(int count, const Ice::Current& current)
{
- ConnectionCallbackIPtr callback = new ConnectionCallbackI();
- current.con->setCallback(callback);
+ HeartbeatCallbackIPtr callback = ICE_MAKE_SHARED(HeartbeatCallbackI);
+#ifdef ICE_CPP11_MAPPING
+ current.con->setHeartbeatCallback([callback](Ice::ConnectionPtr connection)
+ {
+ callback->heartbeat(move(connection));
+ });
+#else
+ current.con->setHeartbeatCallback(callback);
+#endif
callback->waitForCount(count);
}