10 #include "DCPS_IR_Topic.h"
11 #include "DCPS_IR_Domain.h"
13 #include "DCPS_IR_Subscription.h"
14 #include "DCPS_IR_Publication.h"
15 #include "DCPS_IR_Participant.h"
16 #include "DCPS_IR_Topic_Description.h"
18 #include "dds/DCPS/DCPS_Utils.h"
19 #include "dds/DCPS/RepoIdConverter.h"
20 #include "dds/DCPS/Qos_Helper.h"
21 #include "tao/debug.h"
34 participant_(creator),
35 description_(description),
78 ACE_TEXT(
"(%P|%t) DCPS_IR_Topic::add_publication_reference: ")
79 ACE_TEXT(
"topic %C added publication %C at %x\n"),
80 std::string(topic_converter).c_str(),
81 std::string(pub_converter).c_str(),
93 ACE_TEXT(
"(%P|%t) WARNING: DCPS_IR_Topic::add_publication_reference: ")
94 ACE_TEXT(
"topic %C attempt to re-add publication %C.\n"),
95 std::string(topic_converter).c_str(),
96 std::string(pub_converter).c_str()));
105 ACE_TEXT(
"(%P|%t) ERROR: DCPS_IR_Topic::add_publication_reference: ")
106 ACE_TEXT(
"topic %C failed to add publication %C\n"),
107 std::string(topic_converter).c_str(),
108 std::string(pub_converter).c_str()));
124 ACE_TEXT(
"(%P|%t) DCPS_IR_Topic::remove_publication_reference: ")
125 ACE_TEXT(
"topic %C removed publication %C.\n"),
126 std::string(topic_converter).c_str(),
127 std::string(pub_converter).c_str()));
134 ACE_TEXT(
"(%P|%t) ERROR: DCPS_IR_Topic::remove_publication_reference: ")
135 ACE_TEXT(
"topic %C failed to remove publication %C.\n"),
136 std::string(topic_converter).c_str(),
137 std::string(pub_converter).c_str()));
155 ACE_TEXT(
"(%P|%t) DCPS_IR_Topic::add_subscription_reference: ")
156 ACE_TEXT(
"topic %C added subscription %C at %x.\n"),
157 std::string(topic_converter).c_str(),
158 std::string(sub_converter).c_str(),
169 ACE_TEXT(
"(%P|%t) ERROR: DCPS_IR_Topic::add_subscription_reference: ")
170 ACE_TEXT(
"topic %C attempt to re-add subscription %C.\n"),
171 std::string(topic_converter).c_str(),
172 std::string(sub_converter).c_str()));
180 ACE_TEXT(
"(%P|%t) ERROR: DCPS_IR_Topic::add_subscription_reference: ")
181 ACE_TEXT(
"topic %C failed to add subscription %C.\n"),
182 std::string(topic_converter).c_str(),
183 std::string(sub_converter).c_str()));
199 ACE_TEXT(
"(%P|%t) DCPS_IR_Topic::remove_subscription_reference: ")
200 ACE_TEXT(
"topic %C removed subscription %C.\n"),
201 std::string(topic_converter).c_str(),
202 std::string(sub_converter).c_str()));
211 ACE_TEXT(
"(%P|%t) ERROR: DCPS_IR_Topic::remove_subscription_reference: ")
212 ACE_TEXT(
"topic %C failed to remove subscription %C.\n"),
213 std::string(topic_converter).c_str(),
214 std::string(sub_converter).c_str()));
240 using OpenDDS::DCPS::operator==;
259 while (iter != end) {
271 while (iter != end) {
290 ACE_TEXT(
"(%P|%t) DCPS_IR_Topic::try_associate: ")
291 ACE_TEXT(
"topic %C ignoring subscription %C.\n"),
292 std::string(topic_converter).c_str(),
293 std::string(sub_converter).c_str()));
304 while (iter != end) {
353 while (iter != end) {
368 for ( ; iter != end; ++iter)
378 #if !defined (OPENDDS_INFOREPO_REDUCED_FOOTPRINT) 381 for (
int i=0; i < depth; i++)
383 std::string indent = str + prefix;
384 str +=
"DCPS_IR_Topic[";
385 str += std::string(local_converter);
391 str += indent +
"Publications:\n";
397 str += indent + std::string(pub_converter);
402 str += indent +
"Subscriptions:\n";
408 str += indent + std::string(sub_converter);
411 #endif // !defined (OPENDDS_INFOREPO_REDUCED_FOOTPRINT) void update_incompatible_qos()
void try_associate_publication(DCPS_IR_Publication *publication)
OpenDDS::DCPS::GUID_t get_participant_id() const
int add_subscription_reference(DCPS_IR_Subscription *subscription, bool associate=true)
CORBA::Boolean is_subscription_ignored(OpenDDS::DCPS::GUID_t id)
bool set_topic_qos(const DDS::TopicQos &qos)
void reassociate_all_publications()
OpenDDS::DCPS::GUID_t get_id()
Conversion processing and value testing utilities for DCPS Information Repository identifiers...
DCPS_IR_Topic(const OpenDDS::DCPS::GUID_t &id, const DDS::TopicQos &qos, DCPS_IR_Domain *domain, DCPS_IR_Participant *creator, DCPS_IR_Topic_Description *description, bool isBIT)
std::string dump_to_string(const std::string &prefix, int depth) const
OpenDDS::DCPS::GUID_t get_id() const
OpenDDS::DCPS::GUID_t id_
int remove_publication_reference(DCPS_IR_Publication *publication)
DCPS_IR_Topic_Description * get_topic_description()
DCPS_IR_Participant * participant_
DCPS_IR_Topic_Description * description_
OpenDDS::DCPS::GUID_t get_topic_id()
DCPS_IR_Publication_Set publicationRefs_
void publish_subscription_bit(DCPS_IR_Subscription *subscription)
Publish Subscription in the Subscription Built-In Topic.
DDS::InstanceHandle_t get_handle()
DDS::TopicQos * get_topic_qos()
OpenDDS::DCPS::IncompatibleQosStatus * get_incompatibleQosStatus()
int remove_subscription_reference(DCPS_IR_Subscription *subscription)
CORBA::Boolean is_participant_ignored(OpenDDS::DCPS::GUID_t id)
void publish_topic_bit(DCPS_IR_Topic *topic)
Publish Topic in the Topic Built-In Topic.
int insert(const T &new_item)
Representative of the Domain Participant.
int add_publication_reference(DCPS_IR_Publication *publication, bool associate=true)
TopicDataQosPolicy topic_data
bool reevaluate_association(DCPS_IR_Subscription *subscription)
void set_handle(DDS::InstanceHandle_t handle)
OpenDDS::DCPS::GUID_t get_id()
void try_associate(DCPS_IR_Subscription *subscription)
HANDLE_TYPE_NATIVE InstanceHandle_t
long count_since_last_send
CORBA::Boolean is_topic_ignored(OpenDDS::DCPS::GUID_t id)
DDS::InstanceHandle_t handle_
void remove_topic_id_mapping(const OpenDDS::DCPS::GUID_t &topicId)
DCPS_IR_Subscription_Set subscriptionRefs_
void publish_publication_bit(DCPS_IR_Publication *publication)
Publish Publication in the Publication Built-In Topic.
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
bool try_associate(DCPS_IR_Publication *publication, DCPS_IR_Subscription *subscription)
OpenDDS::DCPS::GUID_t get_id()
OpenDDS::DCPS::GUID_t get_participant_id()
void set_bit_status(CORBA::Boolean isBIT)
int remove(const T &item)
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
void reevaluate_associations(DCPS_IR_Subscription *subscription)
Representative of a Subscription.
Representation of a Domain in the system.
int remove_subscription_reference(DCPS_IR_Subscription *subscription)
int add_subscription_reference(DCPS_IR_Subscription *subscription, bool associate=true)
Representative of a Topic Description.
Representative of a Publication.
void release(bool removing)
bool reevaluate_association(DCPS_IR_Publication *publication)