/** * @RDE_HEADER@ * Data Plugin for AdvancedSymbology * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-02-29 */ #include "asb_data_plugin.h" #include "asb_foreign_interface_impl.h" #include "logger.h" #include #include #include #include #include #include namespace AdvancedSymbology { AdvancedSymbology::SidcDefinitions::Identity roleToIdentity(const ParticipantManagement::Role role) { AdvancedSymbology::SidcDefinitions::Identity identity = AdvancedSymbology::SidcDefinitions::Identity::Unknown; switch (role.underlying()) { case ParticipantManagement::Role_def::Unknown: identity = AdvancedSymbology::SidcDefinitions::Identity::Unknown; break; case ParticipantManagement::Role_def::Friend: identity = AdvancedSymbology::SidcDefinitions::Identity::Friend; break; case ParticipantManagement::Role_def::Neutral: identity = AdvancedSymbology::SidcDefinitions::Identity::Neutral; break; case ParticipantManagement::Role_def::Enemy: identity = AdvancedSymbology::SidcDefinitions::Identity::HostileFaker; break; case ParticipantManagement::Role_def::Pending: identity = AdvancedSymbology::SidcDefinitions::Identity::Pending; break; case ParticipantManagement::Role_def::AssumedFriend: identity = AdvancedSymbology::SidcDefinitions::Identity::AssumedFriend; break; case ParticipantManagement::Role_def::Suspect: identity = AdvancedSymbology::SidcDefinitions::Identity::SuspectJoker; break; } // switch return identity; } std::shared_ptr DataPlugin::createDataInterface(LtsSession::LtsSessionDataDds *session) { return std::make_shared(session); } DataInterfaceImpl::DataInterfaceImpl(LtsSession::LtsSessionDataDds *session) : DataInterface() , m_foreignInterface(nullptr) , m_session(session) {} std::shared_ptr DataInterfaceImpl::getForeignDataInterface() { if (!m_foreignInterface) { std::shared_ptr ppmDtc; std::shared_ptr aesDtc; std::shared_ptr gimDtc; m_session->getDtc(ppmDtc); m_session->getDtc(aesDtc); m_session->getDtc(gimDtc); m_foreignInterface = std::make_shared(ppmDtc, aesDtc, gimDtc); } return m_foreignInterface; } } // namespace AdvancedSymbology