当前位置: 首页>>代码示例>>C++>>正文


C++ ConnectionPtr::Id方法代码示例

本文整理汇总了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);
        }
    }
开发者ID:SafirSDK,项目名称:safir-sdk-core,代码行数:25,代码来源:ServiceType.cpp

示例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);
    }
开发者ID:SafirSDK,项目名称:safir-sdk-core,代码行数:29,代码来源:ServiceType.cpp

示例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);
    }
开发者ID:SafirSDK,项目名称:safir-sdk-core,代码行数:8,代码来源:ServiceType.cpp

示例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);
    }
开发者ID:SafirSDK,项目名称:safir-sdk-core,代码行数:13,代码来源:ServiceType.cpp

示例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);
    }
开发者ID:SafirSDK,项目名称:safir-sdk-core,代码行数:13,代码来源:ServiceType.cpp


注:本文中的ConnectionPtr::Id方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。