Go to the documentation of this file.00001 #ifndef OMG_DDS_TOPIC_DETAIL_ANY_TOPIC_DESCRIPTION_HPP_
00002 #define OMG_DDS_TOPIC_DETAIL_ANY_TOPIC_DESCRIPTION_HPP_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <string>
00023
00024 #include <dds/domain/DomainParticipant.hpp>
00025
00026
00027 namespace dds { namespace topic { namespace detail {
00028 class TDHolderBase {
00029 public:
00030 virtual ~TDHolderBase() { }
00031
00032 virtual dds::domain::DomainParticipant parent() const = 0;
00033
00034 virtual const std::string topic_name() const = 0;
00035
00036 virtual const std::string type_name() const = 0;
00037 };
00038
00039 template <typename T>
00040 class TDHolder : public virtual TDHolderBase {
00041 public:
00042 TDHolder(const T& t) : t_(t) { }
00043 virtual ~TDHolder() { }
00044 public:
00045 virtual dds::domain::DomainParticipant parent() const;
00046
00047 virtual const std::string topic_name() const;
00048
00049 virtual const std::string type_name() const;
00050
00051 protected:
00052 T t_;
00053 };
00054 } } }
00055
00056 #endif