OpenSplice ISO C++ 2 DCPS  v6.x
ISO C++ 2 OpenSplice Data Distribution Service Data-Centric Publish-Subscribe API
ContentFilteredTopicImpl.hpp
Go to the documentation of this file.
1 /*
2  * Vortex OpenSplice
3  *
4  * This software and documentation are Copyright 2006 to 2021 ADLINK
5  * Technology Limited, its affiliated companies and licensors. All rights
6  * reserved.
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 #ifndef OSPL_DDS_TOPIC_TCONTENTFILTEREDTOPIC_HPP_
22 #define OSPL_DDS_TOPIC_TCONTENTFILTEREDTOPIC_HPP_
23 
28 /*
29  * OMG PSM class declaration
30  */
31 #include <dds/topic/TContentFilteredTopic.hpp>
32 
33 // Implementation
34 
35 namespace dds
36 {
37 namespace topic
38 {
39 template <typename T>
41  const std::string& name,
42  const dds::topic::Filter& filter) :
43  ::dds::core::Reference(
44  new dds::topic::detail::ContentFilteredTopic<T>(topic, name, filter))
45 {
46  ISOCPP_REPORT_STACK_DDS_BEGIN(topic);
47  this->delegate()->init(::dds::core::Reference::impl_);
48 }
49 
50 template <typename T>
52 {
53  // Nothing to be done yet....
54 }
55 
56 template <typename T>
58 {
59  ISOCPP_REPORT_STACK_DDS_BEGIN(*this);
60 
61  return this->delegate()->filter_expression();
62 }
63 
64 template <typename T>
66 {
67  ISOCPP_REPORT_STACK_DDS_BEGIN(*this);
68 
69  return this->delegate()->filter_parameters();
70 }
71 
72 template <typename T>
73 template <typename FWDIterator>
74 void ContentFilteredTopic<T>::filter_parameters(const FWDIterator& begin, const FWDIterator& end)
75 {
76  ISOCPP_REPORT_STACK_DDS_BEGIN(*this);
77 
78  this->delegate()->filter_parameters(begin, end);
79 }
80 
81 template <typename T>
83 {
84  ISOCPP_REPORT_STACK_DDS_BEGIN(*this);
85 
86  return this->delegate()->topic();
87 }
88 
89 
90 }
91 }
92 
93 // End of implementation
94 
95 #endif /* OSPL_DDS_TOPIC_TCONTENTFILTEREDTOPIC_HPP_ */
Filter objects contain SQL expressions that allow the application to specify a filter on the locally ...
Definition: Filter.hpp:57
const std::string & filter_expression() const
Topic is the most basic description of the data to be published and subscribed.
Definition: Topic.hpp:36
ContentFilteredTopic is a specialization of TopicDescription that allows for content-based subscripti...
const dds::core::StringSeq filter_parameters() const
Definition: array.hpp:23
ContentFilteredTopic(const Topic< T > &topic, const std::string &name, const dds::topic::Filter &filter)
const dds::topic::Topic< T > & topic() const
std::vector< std::string > StringSeq
Definition: types.hpp:43