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


C++ Endpoint::get_connected_entities方法代码示例

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


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

示例1:

std::vector<Uuid>
ModelTool::get_endpoints_with_role(const attribute::Array<Uuid>& endpoints_uuids, const EntityRole role) {
    std::vector<Uuid> filtered_endpoints_uuids;
    std::copy_if(endpoints_uuids.begin(), endpoints_uuids.end(), std::back_inserter(filtered_endpoints_uuids),
                 [role](Uuid endpoint_uuid) {
                     Endpoint endpoint = get_manager<Endpoint>().get_entry(endpoint_uuid);
                     if (endpoint.get_connected_entities().size() > 0) {
                         return endpoint.get_connected_entities()[0].get_entity_role() == role;
                     }
                     return false;
                 });
    return filtered_endpoints_uuids;
}
开发者ID:01org,项目名称:intelRSD,代码行数:13,代码来源:model_tool.cpp

示例2: KeyValueMissingError

const std::string
PncKeyGenerator::generate_key(const Endpoint& endpoint, const std::vector<Port>& in_endpoint_ports) {
    auto connected_entities = endpoint.get_connected_entities();
    std::vector<Port> endpoint_ports = in_endpoint_ports;

    if (connected_entities.empty()) {
        if (endpoint_ports.empty()) {
            throw KeyValueMissingError("No connected entities and unique key ports.");
        }
        throw KeyValueMissingError("No connected entities.");
    }

    using ConnectedEntity = agent_framework::model::attribute::ConnectedEntity;
    auto entity_lexicographical_compare = [](ConnectedEntity lhs, ConnectedEntity rhs) -> bool {
        if (!lhs.get_entity().has_value() || !rhs.get_entity().has_value()) {
            return lhs.get_entity() < rhs.get_entity();
        }
        else {
            return lhs.get_entity_role().value().to_string() < rhs.get_entity_role().value().to_string();
        }
    };

    auto port_lexicographical_compare = [](const Port& lhs, const Port& rhs) -> bool {
        return lhs.get_unique_key() < rhs.get_unique_key();
    };

    std::sort(endpoint_ports.begin(), endpoint_ports.end(), port_lexicographical_compare);
    std::sort(connected_entities.begin(), connected_entities.end(), entity_lexicographical_compare);

    std::vector<std::string> connected_entities_data{};
    constexpr std::size_t data_multiplier = 2u;
    constexpr std::size_t uuid_string_length = 36u;
    connected_entities_data.reserve(data_multiplier * connected_entities.size());
    std::size_t unique_key_size = 0u;

    for (const auto& connected_entity : connected_entities) {
        if (connected_entity.get_entity().has_value()) {
            connected_entities_data.push_back(connected_entity.get_entity().value());
            unique_key_size += uuid_string_length;
        }
        if (connected_entity.get_entity_role().has_value()) {
            connected_entities_data.push_back(connected_entity.get_entity_role().value().to_string());
            unique_key_size += connected_entities_data.back().size();
        }
    }

    for (const auto& endpoint_port : endpoint_ports) {
        unique_key_size += endpoint_port.get_unique_key().has_value() ? endpoint_port.get_unique_key().value().size()
                                                                      : 0u;
    }

    std::string endpoint_unique_key{generate_key_base(endpoint)};
    endpoint_unique_key.reserve(endpoint_unique_key.size() + unique_key_size);

    for (const auto& connected_entity_data_chunk : connected_entities_data) {
        endpoint_unique_key += connected_entity_data_chunk;
    }

    for (const auto& endpoint_port : endpoint_ports) {
        endpoint_unique_key += endpoint_port.get_unique_key().has_value() ? endpoint_port.get_unique_key().value()
                                                                          : std::string();
    }

    return endpoint_unique_key;
}
开发者ID:01org,项目名称:intelRSD,代码行数:65,代码来源:pnc_key_generator.cpp


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