Go to the documentation of this file.00001 #ifndef OMG_DDS_TOPIC_DETAIL_MULTI_HPP_
00002 #define OMG_DDS_TOPIC_DETAIL_MULTI_HPP_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <string>
00023 #include <vector>
00024
00025 #include <dds/core/detail/conformance.hpp>
00026 #include <dds/core/types.hpp>
00027 #include <dds/topic/detail/topicfwd.hpp>
00028 #include <idds/topic/TopicDescription.hpp>
00029
00030
00031 namespace dds { namespace topic { namespace detail {
00032
00033 #ifdef OMG_DDS_CONTENT_SUBSCRIPTION_SUPPORT
00034
00035 template <typename T>
00036 class MultiTopic : public idds::topic::TopicDescriptionImpl<T>
00037 {
00038 public:
00039 MultiTopic(const std::string& the_name,
00040 const std::string& sub_expr,
00041 const dds::core::StringSeq& params,
00042 const typename idds::topic::TopicDescriptionImpl<T>::DPHolder& dp)
00043 : idds::topic::TopicDescriptionImpl<T>(the_name, " ", dp),
00044 sub_expr_(sub_expr),
00045 params_(params)
00046 { }
00047
00048 virtual ~MultiTopic() { }
00049
00050 public:
00051 const std::string& subscription_expression() const {
00052 return sub_expr_;
00053 }
00054
00055 const dds::core::StringSeq expression_parameters() const {
00056 return params_;
00057 }
00058
00059 void expression_parameters(const dds::core::StringSeq& params) {
00060 params_ = params;
00061 }
00062
00063 private:
00064 std::string sub_expr_;
00065 std::vector<std::string> params_;
00066
00067 };
00068
00069 #endif // OMG_DDS_CONTENT_SUBSCRIPTION_SUPPORT
00070
00071 } } }
00072
00073
00074 #endif