/** * {{ namespace_abbr_upper }} Data Topic Server Interface * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2016-04-07 */ {% autoescape off %} // filename: {{ namespace_abbr }}_dts_impl.h #pragma once #include #include <{{ include_prefix }}/{{ namespace_abbr }}_dts.h> #include <{{ include_prefix }}/{{ namespace_abbr }}_dts_types.h> #include <{{ include_prefix }}/logger.h> #include #if !defined(MAKE_SVC{{ namespace_abbr_upper }}SERVER_LIB) #error "You are not allowed to include this file in your code!" #endif namespace {{ namespace }} { namespace Interface { class DtsImpl final : public Dts { public: explicit DtsImpl(const std::shared_ptr &ddsConnector); ~DtsImpl(); bool enableAll(bool enable = true) override; {% for dt in dataTopics.member %} {% if dt.dtsImpl %} // // Data Topic '{{ dt.name }}' // bool enable{{ dt.name }}(bool enable = true) override; bool is{{ dt.name }}Enabled() const override final { return m_dts{{ dt.name }} != nullptr; } bool publish(const {{ namespace }}::{{ dt.type }} &data) override; {% if dt.key.name %} bool remove{{ dt.name }}ByKey({{ dt.key.cppTypeCr }} {{ dt.key.nameFlc }}, bool errorMsgIfSampleDoesNotExists = true) override; {% endif %} {% endif %} {% endfor %} protected: std::shared_ptr m_ddsConnector; {% for dt in dataTopics.member %} {% if dt.dtsImpl %} std::unique_ptr m_dts{{ dt.name }}; {% endif %} {% endfor %} LOGGER_T m_logger; }; } // namespace Interface } // namespace {{ namespace }} {% endautoescape %}