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

Function create_writer

tests/DCPS/ManyTopicTest/publisher.cpp:117–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115
116template<typename MessageType>
117typename OpenDDS::DCPS::DDSTraits<MessageType>::DataWriterType::_var_type
118create_writer(const DDS::Publisher_var& pub, const char* topicName,
119 const DDS::DataWriterQos& qos = DATAWRITER_QOS_DEFAULT,
120 const DDS::DataWriterListener_var& listener = 0,
121 const DDS::StatusMask& mask = OpenDDS::DCPS::DEFAULT_STATUS_MASK)
122{
123 const DDS::TypeSupport_var ts = new typename ::OpenDDS::DCPS::DDSTraits<MessageType>::TypeSupportImplType();
124 const DDS::DomainParticipant_var dp = pub->get_participant();
125 const CORBA::String_var typeName = ts->get_type_name();
126 (void) ts->register_type(dp, typeName); // may have been registered before
127
128 const DDS::Topic_var topic =
129 dp->create_topic(topicName, typeName, TOPIC_QOS_DEFAULT, 0, 0);
130 if (!topic) return 0;
131
132 const DDS::DataWriter_var dw =
133 pub->create_datawriter(topic, qos, listener, mask);
134 return OpenDDS::DCPS::DDSTraits<MessageType>::DataWriterType::_narrow(dw);
135}
136
137OpenDDS::DCPS::Atomic<CORBA::Long> key(0);
138

Callers 1

test_caseMethod · 0.85

Calls 5

get_participantMethod · 0.45
get_type_nameMethod · 0.45
register_typeMethod · 0.45
create_topicMethod · 0.45
create_datawriterMethod · 0.45

Tested by 1

test_caseMethod · 0.68