Changeset 1009 for XIOS/dev/dev_olga/src/group_template_impl.hpp
- Timestamp:
- 12/05/16 17:47:54 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/group_template_impl.hpp
r987 r1009 379 379 { 380 380 // Use correct context client to send message 381 CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer : context->client; 382 383 CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD) ; 384 if (contextClientTmp->isServerLeader()) 385 { 386 CMessage msg ; 387 msg<<this->getId() ; 388 msg<<id ; 389 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 390 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 391 event.push(*itRank,1,msg) ; 392 contextClientTmp->sendEvent(event) ; 393 } 394 else contextClientTmp->sendEvent(event) ; 381 // CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer : context->client; 382 int nbSrvPools = (context->hasServer) ? context->clientPrimServer.size() : 1; 383 for (int i = 0; i < nbSrvPools; ++i) 384 { 385 CContextClient* contextClientTmp = (context->hasServer) ? context->clientPrimServer[i] : context->client; 386 387 CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD) ; 388 if (contextClientTmp->isServerLeader()) 389 { 390 CMessage msg ; 391 msg<<this->getId() ; 392 msg<<id ; 393 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 394 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 395 event.push(*itRank,1,msg) ; 396 contextClientTmp->sendEvent(event) ; 397 } 398 else contextClientTmp->sendEvent(event) ; 399 } 395 400 } 396 401 … … 416 421 417 422 template <class U, class V, class W> 423 void CGroupTemplate<U, V, W>::sendCreateChild(const string& id, const int srvPool) 424 { 425 CContext* context=CContext::getCurrent() ; 426 CContextClient* contextClientTmp = context->clientPrimServer[srvPool]; 427 428 CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD) ; 429 if (contextClientTmp->isServerLeader()) 430 { 431 CMessage msg ; 432 msg<<this->getId() ; 433 msg<<id ; 434 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 435 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 436 event.push(*itRank,1,msg) ; 437 contextClientTmp->sendEvent(event) ; 438 } 439 else contextClientTmp->sendEvent(event) ; 440 } 441 442 template <class U, class V, class W> 418 443 void CGroupTemplate<U, V, W>::sendCreateChildGroup(const string& id) 419 444 { … … 424 449 { 425 450 // Use correct context client to send message 426 CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer : context->client; 427 428 CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD_GROUP) ; 429 if (contextClientTmp->isServerLeader()) 430 { 431 CMessage msg ; 432 msg<<this->getId() ; 433 msg<<id ; 434 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 435 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 436 event.push(*itRank,1,msg) ; 437 contextClientTmp->sendEvent(event) ; 438 } 439 else contextClientTmp->sendEvent(event) ; 451 // CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer : context->client; 452 int nbSrvPools = (context->hasServer) ? context->clientPrimServer.size() : 1; 453 for (int i = 0; i < nbSrvPools; ++i) 454 { 455 CContextClient* contextClientTmp = (context->hasServer) ? context->clientPrimServer[i] : context->client; 456 CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD_GROUP) ; 457 if (contextClientTmp->isServerLeader()) 458 { 459 CMessage msg ; 460 msg<<this->getId() ; 461 msg<<id ; 462 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 463 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 464 event.push(*itRank,1,msg) ; 465 contextClientTmp->sendEvent(event) ; 466 } 467 else contextClientTmp->sendEvent(event) ; 468 } 440 469 } 441 470
Note: See TracChangeset
for help on using the changeset viewer.