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


C++ request::get_gid方法代码示例

本文整理汇总了C++中request::get_gid方法的典型用法代码示例。如果您正苦于以下问题:C++ request::get_gid方法的具体用法?C++ request::get_gid怎么用?C++ request::get_gid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在request的用法示例。


在下文中一共展示了request::get_gid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: resolve_locality

response locality_namespace::resolve_locality(
    request const& req
  , error_code& ec
    )
{ // {{{ resolve_locality implementation

    using hpx::util::get;
    boost::uint32_t prefix = naming::get_locality_id_from_gid(req.get_gid());

    std::lock_guard<mutex_type> l(mutex_);
    partition_table_type::iterator it = partitions_.find(prefix);

    if(it != partitions_.end())
    {
        return response(locality_ns_resolve_locality, get<0>(it->second));
    }

    return response(locality_ns_resolve_locality, parcelset::endpoints_type(),
        no_success);
} // }}}
开发者ID:AALEKH,项目名称:hpx,代码行数:20,代码来源:locality_namespace_server.cpp

示例2: free

response locality_namespace::free(
    request const& req
  , error_code& ec
    )
{ // {{{ free implementation
    using hpx::util::get;

    // parameters
    naming::gid_type locality = req.get_gid();
    boost::uint32_t prefix = naming::get_locality_id_from_gid(locality);

    std::unique_lock<mutex_type> l(mutex_);

    partition_table_type::iterator pit = partitions_.find(prefix)
                                 , pend = partitions_.end();

    if (pit != pend)
    {
        /*
        // Wipe the locality from the tables.
        naming::gid_type locality =
            naming::get_gid_from_locality_id(get<0>(pit->second));

        // first remove entry from reverse partition table
        prefixes_.erase(get<0>(pit->second));
        */

        // now remove it from the main partition table
        partitions_.erase(pit);

        if (primary_)
        {
            l.unlock();

            boost::uint32_t locality_id =
                naming::get_locality_id_from_gid(locality);

            // remove primary namespace
            {
                naming::gid_type service(HPX_AGAS_PRIMARY_NS_MSB,
                    HPX_AGAS_PRIMARY_NS_LSB);
                request req(primary_ns_unbind_gid,
                    naming::replace_locality_id(service, locality_id), 1);
                response resp = primary_->service(req, ec);
                if (ec) return resp;
            }

            // remove symbol namespace
            {
                naming::gid_type service(HPX_AGAS_SYMBOL_NS_MSB,
                    HPX_AGAS_SYMBOL_NS_LSB);
                request req(primary_ns_unbind_gid,
                    naming::replace_locality_id(service, locality_id), 1);
                response resp = primary_->service(req, ec);
                if (ec) return resp;
            }

            // remove locality itself
            {
                request req(primary_ns_unbind_gid, locality, 0);
                response resp = primary_->service(req, ec);
                if (ec) return resp;
            }
        }

        /*
        LAGAS_(info) << (boost::format(
            "locality_namespace::free, ep(%1%)")
            % ep);
        */

        if (&ec != &throws)
            ec = make_success_code();

        return response(locality_ns_free);
    }

    /*
    LAGAS_(info) << (boost::format(
        "locality_namespace::free, ep(%1%), "
        "response(no_success)")
        % ep);
    */

    if (&ec != &throws)
        ec = make_success_code();

    return response(locality_ns_free
                       , no_success);
} // }}}
开发者ID:AALEKH,项目名称:hpx,代码行数:90,代码来源:locality_namespace_server.cpp


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