本文整理汇总了C++中QSharedPointer::GetRemoteAddress方法的典型用法代码示例。如果您正苦于以下问题:C++ QSharedPointer::GetRemoteAddress方法的具体用法?C++ QSharedPointer::GetRemoteAddress怎么用?C++ QSharedPointer::GetRemoteAddress使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QSharedPointer
的用法示例。
在下文中一共展示了QSharedPointer::GetRemoteAddress方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Inquired
void ConnectionManager::Inquired(const Response &response)
{
QSharedPointer<Edge> edge = response.GetFrom().dynamicCast<Edge>();
if(!edge) {
qWarning() << "Received an inquired from a non-Edge: " <<
response.GetFrom()->ToString();
return;
} else if(!edge->Outbound()) {
qWarning() << "We would never make an inquire call on an" <<
"incoming edge: " << response.GetFrom()->ToString();
return;
}
QByteArray brem_id = response.GetData().toByteArray();
if(brem_id.isEmpty()) {
qWarning() << "Invalid ConnectionEstablished, no id";
return;
}
Id rem_id(brem_id);
if(_local_id < rem_id) {
BindEdge(edge, rem_id);
} else if(rem_id == _local_id) {
Address addr = edge->GetRemoteAddress();
qDebug() << "Attempting to connect to ourself";
edge->Stop("Attempting to connect to ourself");
emit ConnectionAttemptFailure(addr, "Attempting to connect to ourself");
}
}
示例2: BindEdge
void ConnectionManager::BindEdge(const QSharedPointer<Edge> &edge,
const Id &rem_id)
{
/// @TODO add an extra variable to the connection message such as a session
///token so that quick reconnects can be enabled.
if(_con_tab.GetConnection(rem_id) != 0) {
qDebug() << "Already have a connection to: " << rem_id.ToString() <<
" closing Edge: " << edge->ToString();
_rpc->SendNotification(edge, "CM::Close", QVariant());
Address addr = edge->GetRemoteAddress();
edge->Stop("Duplicate connection");
emit ConnectionAttemptFailure(addr, "Duplicate connection");
return;
}
_rpc->SendNotification(edge, "CM::Connect", _local_id.GetByteArray());
CreateConnection(edge, rem_id);
}