#pragma once #include #include namespace ddkit { namespace access { class ITopicStrategy { public: virtual std::string get(const std::string& typeName) = 0; virtual ~ITopicStrategy() = default; protected: ITopicStrategy() = default; private: // no copying ITopicStrategy(ITopicStrategy const&) = delete; ITopicStrategy(ITopicStrategy&&) = delete; void operator=(ITopicStrategy const&) = delete; void operator=(ITopicStrategy&&) = delete; }; typedef std::shared_ptr ITopicStrategyPtr; } // namespace access } // namespace ddkit