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


C++ From::protocol方法代码示例

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


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

示例1: cast

    static inline
    asio::ip::tcp::endpoint
    cast(const From& endpoint) {
        switch (endpoint.protocol().family()) {
        case AF_INET: {
            const sockaddr_in* addr = reinterpret_cast<const sockaddr_in*>(endpoint.data());
            asio::ip::address_v4::bytes_type array;
            std::copy((char*)&addr->sin_addr, (char*)&addr->sin_addr + array.size(), array.begin());
            asio::ip::address_v4 address(array);
            return asio::ip::tcp::endpoint(
                       address,
                       asio::detail::socket_ops::network_to_host_short(addr->sin_port)
                   );
        }
        case AF_INET6: {
            const sockaddr_in6* addrv6 = reinterpret_cast<const sockaddr_in6*>(endpoint.data());
            asio::ip::address_v6::bytes_type array;
            std::copy((char*)&addrv6->sin6_addr, (char*)&addrv6->sin6_addr + array.size(), array.begin());
            asio::ip::address_v6 address(array, addrv6->sin6_scope_id);
            return asio::ip::tcp::endpoint(
                       address,
                       asio::detail::socket_ops::network_to_host_short(addrv6->sin6_port)
                   );
        }
        default:
            BOOST_ASSERT(false);
        };

        return asio::ip::tcp::endpoint();
    }
开发者ID:arssher,项目名称:cocaine-core,代码行数:30,代码来源:net.hpp

示例2: string

    static inline
    std::string
    cast(const From& endpoint) {
        // TODO: Это пиздец.
        switch (endpoint.protocol().family()) {
        case AF_INET:
        case AF_INET6:
            return boost::lexical_cast<std::string>(endpoint_traits<asio::ip::tcp::endpoint>::cast(endpoint));
        case AF_UNIX: {
            const sockaddr_un* addr = (const sockaddr_un*)(endpoint.data());
            return std::string(addr->sun_path);
        }
        default:
            break;
        };

        return "<unknown protocol type>";
    }
开发者ID:arssher,项目名称:cocaine-core,代码行数:18,代码来源:net.hpp


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