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

Method pushState

dds/InfoRepo/FederatorManagerImpl_updates.cpp:1253–1397  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1251}
1252
1253void
1254ManagerImpl::pushState(Manager_ptr peer)
1255{
1256 // foreach DCPS_IR_Domain
1257 // foreach DCPS_IR_Participant
1258 // peer->initializeParticipant(...)
1259 // peer->initializeOwner(...)
1260 // foreach DCPS_IR_Participant
1261 // foreach DCPS_IR_Topic
1262 // peer->initializeTopic(...)
1263 // foreach DCPS_IR_Publication
1264 // peer->initializePublication(...)
1265 // foreach DCPS_IR_Subscription
1266 // peer->initializeSubscription(...)
1267
1268 // Process each domain within the repository.
1269 for (DCPS_IR_Domain_Map::const_iterator currentDomain
1270 = this->info_->domains().begin();
1271 currentDomain != this->info_->domains().end();
1272 ++currentDomain) {
1273
1274 if (currentDomain->second->get_id() == this->config_.federationDomain()) {
1275 // Do not push the Federation domain publications.
1276 //continue;
1277 }
1278
1279 // Process each participant within the current domain.
1280 for (DCPS_IR_Participant_Map::const_iterator currentParticipant
1281 = currentDomain->second->participants().begin();
1282 currentParticipant != currentDomain->second->participants().end();
1283 ++currentParticipant) {
1284
1285 if (currentParticipant->second->isBitPublisher() == true) {
1286 // Do not push the built-in topic publications.
1287 continue;
1288 }
1289
1290 // Initialize the participant on the peer.
1291 ParticipantUpdate participantSample;
1292 participantSample.sender = this->id().id();
1293 participantSample.action = CreateEntity;
1294
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();
1299
1300 peer->initializeParticipant(participantSample);
1301
1302 // Initialize the ownership of the participant on the peer.
1303 OwnerUpdate ownerSample;
1304 ownerSample.sender = this->id().id();
1305 ownerSample.action = CreateEntity;
1306
1307 ownerSample.domain = currentDomain->second->get_id();
1308 ownerSample.participant = currentParticipant->second->get_id();
1309 ownerSample.owner = currentParticipant->second->owner();
1310

Callers 1

join_federationMethod · 0.95

Calls 15

federationDomainMethod · 0.80
participantsMethod · 0.80
isBitPublisherMethod · 0.80
ownerMethod · 0.80
initializeParticipantMethod · 0.80
initializeOwnerMethod · 0.80
get_dataTypeNameMethod · 0.80
initializeTopicMethod · 0.80
object_to_stringMethod · 0.80
initializePublicationMethod · 0.80
get_expr_paramsMethod · 0.80

Tested by

no test coverage detected