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

Method createReader

tools/modeling/codegen/model/Delegate.cpp:239–273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

237}
238
239DDS::DataReader*
240OpenDDS::Model::Delegate::createReader(
241 DDS::Subscriber* subscriber,
242 DDS::TopicDescription* topic,
243 const DDS::DataReaderQos& readerQos,
244 DDS::StatusMask mask,
245 const OPENDDS_STRING& transportConfig)
246{
247 // If we specify a transport and have autoenable modeled,
248 // temporarily turn off autoenabling
249 bool overridden = false;
250 bool transportSpecified = !transportConfig.empty();
251
252 // If transport config was specified
253 if (transportSpecified) {
254 overridden = override_autoenabled_qos(subscriber);
255 }
256
257 DDS::DataReader_ptr dataReader = subscriber->create_datareader(
258 topic,
259 readerQos,
260 DDS::DataReaderListener::_nil(),
261 mask
262 );
263
264 if (transportSpecified) {
265 // Restore autoenabling if necessary
266 if (overridden) {
267 restore_autoenabled_qos(subscriber);
268 }
269 // bind to specified transport
270 TheTransportRegistry->bind_config(transportConfig, dataReader);
271 }
272 return dataReader;
273}
274
275bool
276OpenDDS::Model::Delegate::override_autoenabled_qos(

Callers 2

createSubscriptionMethod · 0.95
readerMethod · 0.80

Calls 3

emptyMethod · 0.45
create_datareaderMethod · 0.45
bind_configMethod · 0.45

Tested by

no test coverage detected