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

Method assert_topic

dds/DCPS/StaticDiscovery.cpp:722–745  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

720}
721
722TopicStatus StaticEndpointManager::assert_topic(
723 GUID_t& topicId, const char* topicName,
724 const char* dataTypeName, const DDS::TopicQos& qos,
725 bool hasDcpsKey, TopicCallbacks* topic_callbacks)
726{
727 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, INTERNAL_ERROR);
728 TopicDetailsMap::iterator iter = topics_.find(topicName);
729 if (iter != topics_.end()) {
730 if (iter->second.local_is_set() && iter->second.local_data_type_name() != dataTypeName) {
731 return CONFLICTING_TYPENAME;
732 }
733 topicId = iter->second.topic_id();
734 iter->second.set_local(dataTypeName, qos, hasDcpsKey, topic_callbacks);
735 return FOUND;
736 }
737
738 TopicDetails& td = topics_[topicName];
739 topicId = make_topic_guid();
740 td.init(topicName, topicId);
741 topic_names_[topicId] = topicName;
742 td.set_local(dataTypeName, qos, hasDcpsKey, topic_callbacks);
743
744 return CREATED;
745}
746
747TopicStatus StaticEndpointManager::find_topic(
748 const char* topicName,

Callers

nothing calls this directly

Calls 6

local_is_setMethod · 0.80
local_data_type_nameMethod · 0.80
set_localMethod · 0.80
findMethod · 0.45
endMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected