62 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::create( TopicUpdate): ")
63 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
66 std::string(part_converter).c_str(),
67 std::string(topic_converter).c_str()));
93 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::create( ParticipantUpdate): ")
94 ACE_TEXT(
"repo %d - [ domain %d/ participant %C ]\n"),
97 std::string(converter).c_str()));
132 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::create( SubscriptionUpdate): ")
133 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
136 std::string(part_converter).c_str(),
137 std::string(sub_converter).c_str()));
169 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::create( PublicationUpdate): ")
170 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
173 std::string(part_converter).c_str(),
174 std::string(pub_converter).c_str()));
199 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::create( OwnerUpdate): ")
200 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ sender %d/ owner %d ]\n"),
203 std::string(converter).c_str(),
237 sample.
domain =
id.domain;
244 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::destroy( TopicUpdate): ")
245 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
248 std::string(part_converter).c_str(),
249 std::string(topic_converter).c_str()));
266 sample.
domain =
id.domain;
272 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::destroy( ParticipantUpdate): ")
273 ACE_TEXT(
"repo %d - [ domain %d/ participant %C ]\n"),
276 std::string(converter).c_str()));
297 sample.
domain =
id.domain;
305 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::destroy( PublicationUpdate): ")
306 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
309 std::string(part_converter).c_str(),
310 std::string(pub_converter).c_str()));
327 sample.
domain =
id.domain;
335 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::destroy( SubscriptionUpdate): ")
336 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
339 std::string(part_converter).c_str(),
340 std::string(sub_converter).c_str()));
364 sample.
domain =
id.domain;
371 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update( ParticipantUpdate): ")
372 ACE_TEXT(
"repo %d - [ domain %d/ participant %C ]\n"),
375 std::string(converter).c_str()));
394 sample.
domain =
id.domain;
402 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update( TopicUpdate): ")
403 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
406 std::string(part_converter).c_str(),
407 std::string(topic_converter).c_str()));
425 sample.
domain =
id.domain;
434 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update( WriterUpdate): ")
435 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
438 std::string(part_converter).c_str(),
439 std::string(pub_converter).c_str()));
457 sample.
domain =
id.domain;
466 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update( PublisherUpdate): ")
467 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
470 std::string(part_converter).c_str(),
471 std::string(pub_converter).c_str()));
489 sample.
domain =
id.domain;
498 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update( ReaderUpdate): ")
499 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
502 std::string(part_converter).c_str(),
503 std::string(sub_converter).c_str()));
520 sample.
domain =
id.domain;
529 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update(FilterParams): ")
530 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
533 std::string(part_converter).c_str(),
534 std::string(sub_converter).c_str()));
552 sample.
domain =
id.domain;
561 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::update( SubscriberUpdate): ")
562 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
565 std::string(part_converter).c_str(),
566 std::string(sub_converter).c_str()));
584 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( OwnerUpdate): ")
585 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ sender %d/ owner %d ]\n"),
588 std::string(converter).c_str(),
607 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( OwnerUpdate): ")
622 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( PublicationUpdate): ")
623 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
626 std::string(part_converter).c_str(),
627 std::string(pub_converter).c_str()));
650 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( PublicationUpdate): ")
665 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( SubscriptionUpdate): ")
666 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
669 std::string(part_converter).c_str(),
670 std::string(sub_converter).c_str()));
696 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( SubscriptionUpdate): ")
710 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( ParticipantUpdate): ")
711 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ owner %d ]\n"),
714 std::string(converter).c_str(),
727 if (!ownershipChanged) {
730 ACE_TEXT(
"OpenDDS::Federator::ManagerImpl::processCreate(), ")
731 ACE_TEXT(
"Could not change ownership\n")));
743 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( TopicUpdate): ")
744 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
747 std::string(part_converter).c_str(),
748 std::string(topic_converter).c_str()));
766 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processCreate( TopicUpdate): ")
786 current->participant,
792 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDeferred( OwnerUpdate): ")
793 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ sender %d/ owner %d ]\n"),
796 std::string(converter).c_str(),
810 std::list<TopicUpdate>::iterator current = this->
deferredTopics_.begin();
815 current->participant,
823 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDeferred( TopicUpdate): ")
824 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
827 std::string(part_converter).c_str(),
828 std::string(topic_converter).c_str()));
845 current->participant,
849 current->datawriter_qos,
850 current->transport_info,
851 current->transport_context,
852 current->publisher_qos,
853 current->serialized_type_info,
859 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDeferred( PublicationUpdate): ")
860 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
863 std::string(part_converter).c_str(),
864 std::string(pub_converter).c_str()));
881 current->participant,
885 current->datareader_qos,
886 current->transport_info,
887 current->transport_context,
888 current->subscriber_qos,
889 current->filter_class_name,
890 current->filter_expression,
891 current->expression_params,
892 current->serialized_type_info,
898 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDeferred( SubscriptionUpdate): ")
899 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
902 std::string(part_converter).c_str(),
903 std::string(sub_converter).c_str()));
922 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos1( OwnerUpdate): ")
923 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ sender %d/ owner %d ]\n"),
926 std::string(converter).c_str(),
943 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos1( OwnerUpdate): ")
955 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos1( PublicationUpdate): ")
956 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
959 std::string(part_converter).c_str(),
960 std::string(pub_converter).c_str()));
977 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos2( PublicationUpdate): ")
978 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
981 std::string(part_converter).c_str(),
982 std::string(pub_converter).c_str()));
999 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos1( SubscriptionUpdate): ")
1000 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
1003 std::string(part_converter).c_str(),
1004 std::string(sub_converter).c_str()));
1021 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos2( SubscriptionUpdate): ")
1022 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
1025 std::string(part_converter).c_str(),
1026 std::string(sub_converter).c_str()));
1044 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateFilterExpressionParams(SubscriptionUpdate): ")
1045 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
1048 std::string(part_converter).c_str(),
1049 std::string(sub_converter).c_str()));
1065 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos1( ParticipantUpdate): ")
1066 ACE_TEXT(
"repo %d - [ domain %d/ participant %C ]\n"),
1069 std::string(converter).c_str()));
1085 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processUpdateQos1( TopicUpdate): ")
1086 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
1089 std::string(part_converter).c_str(),
1090 std::string(topic_converter).c_str()));
1106 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( OwnerUpdate): ")
1107 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ sender %d/ owner %d ]\n"),
1110 std::string(converter).c_str(),
1127 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( OwnerUpdate): ")
1139 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( PublicationUpdate): ")
1140 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ publication %C ]\n"),
1143 std::string(part_converter).c_str(),
1144 std::string(pub_converter).c_str()));
1156 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( PublicationUpdate): ")
1157 ACE_TEXT(
"the participant was already removed.\n")));
1169 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( SubscriptionUpdate): ")
1170 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ subscription %C ]\n"),
1173 std::string(part_converter).c_str(),
1174 std::string(sub_converter).c_str()));
1186 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( SubscriptionUpdate): ")
1187 ACE_TEXT(
"the participant was already removed.\n")));
1198 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( ParticipantUpdate): ")
1199 ACE_TEXT(
"repo %d - [ domain %d/ participant %C ]\n"),
1202 std::string(converter).c_str()));
1211 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( ParticipantUpdate): ")
1212 ACE_TEXT(
"the participant was already removed.\n")));
1224 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( TopicUpdate): ")
1225 ACE_TEXT(
"repo %d - [ domain %d/ participant %C/ topic %C ]\n"),
1228 std::string(part_converter).c_str(),
1229 std::string(topic_converter).c_str()));
1241 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( TopicUpdate): ")
1242 ACE_TEXT(
"the participant was already removed.\n")));
1247 ACE_TEXT(
"(%P|%t) Federator::ManagerImpl::processDelete( TopicUpdate): ")
1269 for (DCPS_IR_Domain_Map::const_iterator currentDomain
1280 for (DCPS_IR_Participant_Map::const_iterator currentParticipant
1281 = currentDomain->second->participants().begin();
1282 currentParticipant != currentDomain->second->participants().end();
1283 ++currentParticipant) {
1285 if (currentParticipant->second->isBitPublisher() ==
true) {
1295 participantSample.
owner = currentParticipant->second->owner();
1296 participantSample.
domain = currentDomain->second->get_id();
1297 participantSample.
id = currentParticipant->second->get_id();
1298 participantSample.
qos = *currentParticipant->second->get_qos();
1300 peer->initializeParticipant(participantSample);
1307 ownerSample.
domain = currentDomain->second->get_id();
1308 ownerSample.
participant = currentParticipant->second->get_id();
1309 ownerSample.
owner = currentParticipant->second->owner();
1311 peer->initializeOwner(ownerSample);
1315 for (DCPS_IR_Participant_Map::const_iterator currentParticipant
1316 = currentDomain->second->participants().begin();
1317 currentParticipant != currentDomain->second->participants().end();
1318 ++currentParticipant) {
1320 if (currentParticipant->second->isBitPublisher() ==
true) {
1326 for (DCPS_IR_Topic_Map::const_iterator currentTopic
1327 = currentParticipant->second->topics().begin();
1328 currentTopic != currentParticipant->second->topics().end();
1334 topicSample.
id = currentTopic->second->get_id();
1335 topicSample.
domain = currentDomain->second->get_id();
1336 topicSample.
participant = currentTopic->second->get_participant_id();
1337 topicSample.
topic = currentTopic->second->get_topic_description()->get_name();
1338 topicSample.
datatype = currentTopic->second->get_topic_description()->get_dataTypeName();
1339 topicSample.
qos = *currentTopic->second->get_topic_qos();
1341 peer->initializeTopic(topicSample);
1345 for (DCPS_IR_Publication_Map::const_iterator currentPublication
1346 = currentParticipant->second->publications().begin();
1347 currentPublication != currentParticipant->second->publications().end();
1348 ++currentPublication) {
1357 publicationSample.
domain = currentDomain->second->get_id();
1360 publicationSample.
id = p->
get_id();
1366 peer->initializePublication(publicationSample);
1370 for (DCPS_IR_Subscription_Map::const_iterator currentSubscription
1371 = currentParticipant->second->subscriptions().begin();
1372 currentSubscription != currentParticipant->second->subscriptions().end();
1373 ++currentSubscription) {
1382 subscriptionSample.
domain = currentDomain->second->get_id();
1385 subscriptionSample.
id = s->
get_id();
1393 peer->initializeSubscription(subscriptionSample);
virtual void remove_subscription(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const OpenDDS::DCPS::GUID_t &subscriptionId)
virtual void destroy(const Update::IdPath &id, Update::ItemType type, Update::ActorType actor)
Propagate that an entity has been destroyed.
std::list< TopicUpdate > deferredTopics_
Deferred topic updates.
#define ACE_GUARD(MUTEX, OBJ, LOCK)
OpenDDS::DCPS::GUID_t get_participant_id()
virtual ::CORBA::Boolean update_subscription_params(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const OpenDDS::DCPS::GUID_t &subscriptionId, const DDS::StringSeq ¶ms)
const InstanceHandle_t HANDLE_NIL
DDS::DataReaderQos datareader_qos
void federationDomain(long domain)
Federation Id value.
TAO_DDS_DCPSInfo_i * info_
The Info object reference to update.
OpenDDS::DCPS::GUID_t get_id()
Conversion processing and value testing utilities for DCPS Information Repository identifiers...
const TAO_DDS_DCPSFederationId & id() const
Accessors for the federation Id value.
const DCPS_IR_Domain_Map & domains() const
Expose a readable reference of the domain map.
ParticipantUpdateDataWriter_var participantWriter_
ParticipantUpdate writer.
CSP contentSubscriptionProfile
CORBA::ORB_ptr orb()
Expose the ORB.
Config & config_
The configuration information for this manager.
SubscriptionUpdateDataWriter_var subscriptionWriter_
SubscriptionUpdate writer.
void processUpdateFilterExpressionParams(const SubscriptionUpdate *sample, const DDS::SampleInfo *info)
Update the proxy filter expression params for a subscription.
virtual void unregisterCallback()
OpenDDS::DCPS::GUID_t get_topic_id()
void processDelete(const OwnerUpdate *sample, const DDS::SampleInfo *info)
Null implementation for OwnerUpdate samples.
OwnerUpdateDataWriter_var ownerWriter_
TopicUpdate writer.
DDS::DomainParticipantQos qos
virtual void create(const Update::UTopic &topic)
virtual void requestImage()
CORBA::ORB_ptr orb()
Accessors for the ORB.
DDS::DataWriterQos datawriter_qos
virtual OpenDDS::DCPS::GUID_t add_subscription(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const OpenDDS::DCPS::GUID_t &topicId, OpenDDS::DCPS::DataReaderRemote_ptr subscription, const DDS::DataReaderQos &qos, const OpenDDS::DCPS::TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpression, const DDS::StringSeq &exprParams, const DDS::OctetSeq &serializedTypeInfo)
virtual OpenDDS::DCPS::TopicStatus remove_topic(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const OpenDDS::DCPS::GUID_t &topicId)
OpenDDS::DCPS::TransportLocatorSeq get_transportLocatorSeq() const
std::string get_filter_expression() const
DDS::SubscriberQos subscriber_qos
unsigned long transport_context
virtual CORBA::Boolean update_domain_participant_qos(DDS::DomainId_t domain, const OpenDDS::DCPS::GUID_t &participantId, const DDS::DomainParticipantQos &qos)
DDS::PublisherQos publisher_qos
bool add_topic(const OpenDDS::DCPS::GUID_t &topicId, DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos)
Add a previously existing topic to the repository.
virtual void remove_publication(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const OpenDDS::DCPS::GUID_t &publicationId)
DDS::PublisherQos * get_publisher_qos()
DDS::OctetSeq serialized_type_info
OpenDDS::DCPS::GUID_t get_id()
virtual OpenDDS::DCPS::GUID_t add_publication(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const OpenDDS::DCPS::GUID_t &topicId, OpenDDS::DCPS::DataWriterRemote_ptr publication, const DDS::DataWriterQos &qos, const OpenDDS::DCPS::TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos, const DDS::OctetSeq &serializedTypeInfo)
void processCreate(const OwnerUpdate *sample, const DDS::SampleInfo *info)
Null implementation for OwnerUpdate samples.
virtual OpenDDS::DCPS::AddDomainStatus add_domain_participant(DDS::DomainId_t domain, const DDS::DomainParticipantQos &qos)
unsigned long transport_context
OpenDDS::DCPS::DataReaderRemote_ptr reader()
void processDeferred()
Handle any deferred updates that might have become processable.
OpenDDS::DCPS::DataWriterRemote_ptr writer()
OpenDDS::DCPS::TransportLocatorSeq transport_info
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
void processUpdateQos2(const PublicationUpdate *sample, const DDS::SampleInfo *info)
Update the proxy PublisherQos for a publication.
std::list< PublicationUpdate > deferredPublications_
Deferred publication updates.
OpenDDS::DCPS::GUID_t get_participant_id()
virtual CORBA::Boolean update_subscription_qos(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &partId, const OpenDDS::DCPS::GUID_t &drId, const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subscriberQos)
const DDS::SubscriberQos * get_subscriber_qos()
DDS::OctetSeq serialized_type_info
virtual void update(const Update::IdPath &id, const DDS::DomainParticipantQos &qos)
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
Representative of a Subscription.
ACE_Thread_Mutex deferred_lock_
Protect deferred updates.
std::list< OwnerUpdate > deferredOwnerships_
Deferred ownership updates.
OpenDDS::DCPS::GUID_t get_topic_id()
bool changeOwnership(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, long sender, long owner)
assert new ownership for a participant and its contained entities.
PublicationUpdateDataWriter_var publicationWriter_
PublicationUpdate writer.
DDS::StringSeq expression_params
OpenDDS::DCPS::TransportLocatorSeq get_transportLocatorSeq() const
const character_type * in(void) const
TopicUpdateDataWriter_var topicWriter_
TopicUpdate writer.
The Internal API and Implementation of OpenDDS.
virtual void remove_domain_participant(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId)
void pushState(Manager_ptr peer)
Push our current state to a remote repository.
std::list< SubscriptionUpdate > deferredSubscriptions_
Deferred subscription updates.
virtual CORBA::Boolean update_topic_qos(const OpenDDS::DCPS::GUID_t &topicId, DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &participantId, const DDS::TopicQos &qos)
void processUpdateQos1(const OwnerUpdate *sample, const DDS::SampleInfo *info)
Process ownership changes.
Representative of a Publication.
DDS::StringSeq get_expr_params() const
DDS::DataWriterQos * get_datawriter_qos()
sequence< string > StringSeq
OpenDDS::DCPS::TransportLocatorSeq transport_info
virtual CORBA::Boolean update_publication_qos(DDS::DomainId_t domainId, const OpenDDS::DCPS::GUID_t &partId, const OpenDDS::DCPS::GUID_t &dwId, const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos)
const DDS::DataReaderQos * get_datareader_qos()