本文整理汇总了C++中ice::ConnectionPtr::close方法的典型用法代码示例。如果您正苦于以下问题:C++ ConnectionPtr::close方法的具体用法?C++ ConnectionPtr::close怎么用?C++ ConnectionPtr::close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ice::ConnectionPtr
的用法示例。
在下文中一共展示了ConnectionPtr::close方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: close
//
// Disconnect from the remote peer.
//
virtual void close()
{
Talk::PeerPrx peer;
{
IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_lock);
if(!_connected)
{
cout << ">>>> Not connected!" << endl;
return;
}
_connected = false;
peer = _peer;
_peer = 0;
}
//
// Try to notify the remote peer that we are disconnecting.
//
try
{
peer->disconnect();
Ice::ConnectionPtr con = peer->ice_getCachedConnection();
if(con)
{
con->close(false);
}
}
catch(const Ice::Exception& ex)
{
cout << ">>>> Error: " << ex << endl;
}
}
示例2: SessionNotExistException
void
SessionRouterI::refreshSession(const Ice::ConnectionPtr& con)
{
RouterIPtr router;
{
IceUtil::Monitor<IceUtil::Mutex>::Lock lock(*this);
router = getRouterImpl(con, Ice::Identity(), false); // getRouter updates the session timestamp.
if(!router)
{
//
// Close the connection otherwise the peer has no way to know that the
// session has gone.
//
con->close(ICE_SCOPED_ENUM(ConnectionClose, Forcefully));
throw SessionNotExistException();
}
}
SessionPrx session = router->getSession();
if(session)
{
//
// Ping the session to ensure it does not timeout.
//
session->begin_ice_ping(Ice::newCallback(new ACMPingCallback(this, con), &ACMPingCallback::finished));
}
}
示例3: seq
TimeoutPrx
allTests(const Ice::CommunicatorPtr& communicator)
{
string sref = "timeout:default -p 12010";
Ice::ObjectPrx obj = communicator->stringToProxy(sref);
test(obj);
TimeoutPrx timeout = TimeoutPrx::checkedCast(obj);
test(timeout);
cout << "testing connect timeout... " << flush;
{
//
// Expect ConnectTimeoutException.
//
TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(250));
to->holdAdapter(750);
to->ice_getConnection()->close(true); // Force a reconnect.
try
{
to->op();
test(false);
}
catch(const Ice::ConnectTimeoutException&)
{
// Expected.
}
}
{
//
// Expect success.
//
timeout->op(); // Ensure adapter is active.
TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(1000));
to->holdAdapter(500);
to->ice_getConnection()->close(true); // Force a reconnect.
try
{
to->op();
}
catch(const Ice::ConnectTimeoutException&)
{
test(false);
}
}
cout << "ok" << endl;
cout << "testing read timeout... " << flush;
{
//
// Expect TimeoutException.
//
TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(500));
try
{
to->sleep(750);
test(false);
}
catch(const Ice::TimeoutException&)
{
// Expected.
}
}
{
//
// Expect success.
//
timeout->op(); // Ensure adapter is active.
TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(2000));
try
{
to->sleep(500);
}
catch(const Ice::TimeoutException&)
{
test(false);
}
}
cout << "ok" << endl;
cout << "testing write timeout... " << flush;
{
//
// Expect TimeoutException.
//
TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(500));
to->holdAdapter(2000);
try
{
ByteSeq seq(100000);
to->sendData(seq);
test(false);
}
catch(const Ice::TimeoutException&)
{
// Expected.
}
}
{
//
//.........这里部分代码省略.........
示例4: seq
//.........这里部分代码省略.........
}
catch(const Ice::TimeoutException&)
{
// Connection got closed as well.
}
}
obj->ice_ping();
try
{
con = to->ice_getConnection();
#ifdef ICE_CPP11_MAPPING
to->sleep_async(750).get();
#else
to->end_sleep(to->begin_sleep(750));
#endif
test(false);
}
catch(const Ice::TimeoutException&)
{
try
{
con->getInfo();
test(false);
}
catch(const Ice::TimeoutException&)
{
// Connection got closed as well.
}
}
obj->ice_ping();
}
cout << "ok" << endl;
cout << "testing close timeout... " << flush;
{
TimeoutPrxPtr to = ICE_CHECKED_CAST(TimeoutPrx, obj->ice_timeout(250));
Ice::ConnectionPtr connection = to->ice_getConnection();
timeout->holdAdapter(600);
connection->close(false);
try
{
connection->getInfo(); // getInfo() doesn't throw in the closing state.
}
catch(const Ice::LocalException&)
{
test(false);
}
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(650));
try
{
connection->getInfo();
test(false);
}
catch(const Ice::CloseConnectionException&)
{
// Expected.
}
timeout->op(); // Ensure adapter is active.
}
cout << "ok" << endl;
cout << "testing timeout overrides... " << flush;
{
//
// Test Ice.Override.Timeout. This property overrides all
// endpoint timeouts.