00001 #ifndef OMG_DDS_SUB_FIND_HPP_
00002 #define OMG_DDS_SUB_FIND_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/corefwd.hpp>
00026 #include <dds/core/ref_traits.hpp>
00027 #include <dds/topic/topicfwd.hpp>
00028 #include <dds/sub/subfwd.hpp>
00029 #include <dds/sub/detail/find.hpp>
00030
00031
00032 namespace dds { namespace sub {
00033
00034
00047 template <typename READER, typename FwdIterator>
00048 uint32_t
00049 find(const dds::sub::Subscriber& sub,
00050 const std::string& topic_name,
00051 FwdIterator begin, uint32_t max_size) {
00052 return ::dds::sub::detail::find<READER, FwdIterator>(sub,
00053 topic_name,
00054 begin,
00055 max_size);
00056 }
00057
00069 template <typename READER, typename BinIterator>
00070 uint32_t
00071 find(const dds::sub::Subscriber& sub,
00072 const std::string& topic_name,
00073 BinIterator begin) {
00074 return ::dds::sub::detail::find<READER, BinIterator>(sub,
00075 topic_name,
00076 begin);
00077 }
00078
00087 template <typename READER, typename T, typename FwdIterator>
00088 uint32_t
00089 find(const dds::sub::Subscriber& sub,
00090 const dds::topic::TopicDescription<T>& topic_description,
00091 FwdIterator begin, uint32_t max_size) {
00092
00093 DDS_STATIC_ASSERT((dds::core::is_same<T, typename READER::DataType>::value));
00094 return ::dds::sub::detail::find<READER, T, FwdIterator>(sub,
00095 topic_description,
00096 begin,
00097 max_size);
00098 }
00099
00100 template <typename READER, typename T, typename BinIterator>
00101 uint32_t
00102 find(const dds::sub::Subscriber& sub,
00103 const dds::topic::TopicDescription<T>& topic_description,
00104 BinIterator begin) {
00105
00106 DDS_STATIC_ASSERT((dds::core::is_same<T, typename READER::DataType>::value));
00107 return ::dds::sub::detail::find<READER, T, BinIterator>(sub,
00108 topic_description,
00109 begin);
00110 }
00111
00112
00113 template <typename READER, typename FwdIterator>
00114 uint32_t
00115 find(const dds::sub::Subscriber& sub,
00116 const dds::sub::status::ReaderState& rs,
00117 FwdIterator begin, uint32_t max_size)
00118 {
00119 return dds::sub::detail::find<READER, FwdIterator>(sub,
00120 rs,
00121 begin,
00122 max_size);
00123 }
00124
00125 template <typename READER, typename BinIterator>
00126 uint32_t
00127 find(const dds::sub::Subscriber& sub,
00128 const dds::sub::status::ReaderState& rs,
00129 BinIterator begin)
00130 {
00131 return dds::sub::detail::find<READER, BinIterator>(sub, rs, begin);
00132 }
00133
00134
00135 } }
00136
00137 #endif