MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / takeSamples

Method takeSamples

tests/DCPS/ContentFilteredTopic/ContentFilteredTopicTest.cpp:135–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

133
134template <typename F>
135size_t Readers::takeSamples(F filter)
136{
137 size_t count(0);
138 while (true) {
139 MessageSeq data;
140 SampleInfoSeq infoseq;
141 const ReturnCode_t ret = take(data, infoseq);
142 if (ret == RETCODE_NO_DATA) {
143 break;
144 }
145 if (ret != RETCODE_OK) {
146 cout << "ERROR: take() should have returned some data" << endl;
147 return 0;
148 }
149 for (CORBA::ULong i(0); i < data.length(); ++i) {
150 if (infoseq[i].valid_data) {
151 ++count;
152 cout << reader_address_ << " received data with key == " << data[i].key << endl;
153 if (!filter(data[i].key)) {
154 cout << "ERROR: data should be filtered" << endl;
155 return 0;
156 }
157 }
158 }
159 }
160 return count;
161}
162
163DynamicData_var copy(const KeyOnly<const Message>& sample, DDS::TypeSupport* ts)
164{

Callers 1

Calls 3

takeFunction · 0.85
filterFunction · 0.50
lengthMethod · 0.45

Tested by

no test coverage detected