/** * @RDE_HEADER@ * Data Plugin for InfrastructureManagement * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2016-08-24 */ #include "ism_data_plugin.h" #include "ism_foreign_data_plugin.h" #include namespace InfrastructureManagement { std::shared_ptr DataPlugin::createDataInterface(LtsSession::LtsSessionDataDds *session) { std::shared_ptr dtc; std::shared_ptr ftc; // if (!session->createTopicClient(dtc, ftc, true)) // return std::shared_ptr(); return std::make_shared(session, dtc, ftc); } DataInterfaceImpl::DataInterfaceImpl(LtsSession::LtsSessionDataDds *session, const std::shared_ptr &dtc, const std::shared_ptr &ftc) : DataInterface() , m_dtc(dtc) , m_ftc(ftc) , m_session(session) //, m_foreignInterface(std::make_shared(dtc)) {} std::shared_ptr DataInterfaceImpl::getForeignDataInterface() { if (m_foreignInterface) return m_foreignInterface; if (!getDtc()) return {}; int exerciseId = -1; if (m_session) exerciseId = m_session->exerciseId(); m_foreignInterface = std::make_shared(m_dtc, exerciseId); return m_foreignInterface; } std::shared_ptr DataInterfaceImpl::getDtc() { if (m_dtcEnabled) return m_dtc; if (!m_session->createTopicClient(m_dtc, false, true)) return {}; m_dtcEnabled = true; return m_dtc; } std::shared_ptr DataInterfaceImpl::getFtc() { if (m_ftcEnabled) return m_ftc; if (!m_session->createTopicClient(m_ftc, true, true)) return {}; m_ftcEnabled = true; return m_ftc; } } // namespace InfrastructureManagement