| 720 | } |
| 721 | |
| 722 | TopicStatus 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 | |
| 747 | TopicStatus StaticEndpointManager::find_topic( |
| 748 | const char* topicName, |
nothing calls this directly
no test coverage detected