本文整理汇总了C++中ConnectionPtr::Id方法的典型用法代码示例。如果您正苦于以下问题:C++ ConnectionPtr::Id方法的具体用法?C++ ConnectionPtr::Id怎么用?C++ ConnectionPtr::Id使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConnectionPtr
的用法示例。
在下文中一共展示了ConnectionPtr::Id方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Unregister
void ServiceType::Unregister(const ConnectionPtr& connection,
const Dob::Typesystem::HandlerId& handlerId)
{
const ContextId context = connection->Id().m_contextId;
if (m_typeIsContextShared && context != 0)
{
std::wostringstream ostr;
ostr << "Service " << Typesystem::Operations::GetName(m_typeId) <<
", which is ContextShared, can only be unregistered from context 0.";
throw Safir::Dob::Typesystem::SoftwareViolationException(ostr.str(),__WFILE__,__LINE__);
}
ScopedTypeLock lck(m_typeLocks[context]);
if (handlerId == Dob::Typesystem::HandlerId::ALL_HANDLERS)
{
m_handlerRegistrations[context].UnregisterAll(connection,
true); // true => explicit unregister
}
else
{
m_handlerRegistrations[context].Unregister(connection, handlerId);
}
}
示例2: Register
bool ServiceType::Register(const ConnectionPtr& connection,
const Dob::Typesystem::HandlerId& handlerId,
LamportClock& regClock,
const bool overrideRegistration,
const ConsumerId& consumer)
{
const ContextId context = connection->Id().m_contextId;
if (m_typeIsContextShared && context != 0)
{
std::wostringstream ostr;
ostr << "Service " << Typesystem::Operations::GetName(m_typeId) <<
", which is ContextShared, can only be registered from context 0.";
throw Safir::Dob::Typesystem::SoftwareViolationException(ostr.str(),__WFILE__,__LINE__);
}
ScopedTypeLock lck(m_typeLocks[context]);
// Important to update the registration clock with the lock taken
RegisterTime regTime = regClock.GetNewTimestamp();
return m_handlerRegistrations[context].Register(connection,
handlerId,
Dob::InstanceIdPolicy::RequestorDecidesInstanceId, // Dummy for services
false, // false => no injection handler
regTime,
overrideRegistration,
consumer);
}
示例3: UnregisterAll
void ServiceType::UnregisterAll(const ConnectionPtr& connection, const bool explicitUnregister)
{
const ContextId context = connection->Id().m_contextId;
ScopedTypeLock lck(m_typeLocks[context]);
m_handlerRegistrations[context].UnregisterAll(connection, explicitUnregister);
}
示例4: HasRegistrationSubscription
bool ServiceType::HasRegistrationSubscription(const ConnectionPtr& connection,
const ConsumerId& consumer) const
{
// If it is a ContextShared type we use context 0, otherwise we use the same context as the subscriber.
ContextId context = 0;
if (!m_typeIsContextShared)
{
context = connection->Id().m_contextId;
}
return m_handlerRegistrations[context].HasSubscription(connection,
consumer);
}
示例5: UnsubscribeRegistrationAll
void ServiceType::UnsubscribeRegistrationAll(const ConnectionPtr& connection)
{
// If it is a ContextShared type we use context 0, otherwise we use the same context as the subscriber.
ContextId context = 0;
if (!m_typeIsContextShared)
{
context = connection->Id().m_contextId;
}
ScopedTypeLock lck(m_typeLocks[context]);
m_handlerRegistrations[context].UnsubscribeAll(connection);
}