| 6298 | } |
| 6299 | |
| 6300 | DCPS::TopicStatus Sedp::assert_topic( |
| 6301 | GUID_t& topicId, const char* topicName, |
| 6302 | const char* dataTypeName, const DDS::TopicQos& qos, |
| 6303 | bool hasDcpsKey, DCPS::TopicCallbacks* topic_callbacks) |
| 6304 | { |
| 6305 | ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, DCPS::INTERNAL_ERROR); |
| 6306 | DCPS::TopicDetailsMap::iterator iter = topics_.find(topicName); |
| 6307 | if (iter != topics_.end()) { |
| 6308 | if (iter->second.local_is_set() && iter->second.local_data_type_name() != dataTypeName) { |
| 6309 | return DCPS::CONFLICTING_TYPENAME; |
| 6310 | } |
| 6311 | topicId = iter->second.topic_id(); |
| 6312 | iter->second.set_local(dataTypeName, qos, hasDcpsKey, topic_callbacks); |
| 6313 | return DCPS::FOUND; |
| 6314 | } |
| 6315 | |
| 6316 | DCPS::TopicDetails& td = topics_[topicName]; |
| 6317 | topicId = make_topic_guid(); |
| 6318 | td.init(topicName, topicId); |
| 6319 | topic_names_[topicId] = topicName; |
| 6320 | td.set_local(dataTypeName, qos, hasDcpsKey, topic_callbacks); |
| 6321 | |
| 6322 | return DCPS::CREATED; |
| 6323 | } |
| 6324 | |
| 6325 | DCPS::TopicStatus Sedp::find_topic( |
| 6326 | const char* topicName, |
no test coverage detected