Changeset 1009 for XIOS/dev/dev_olga/src/node/variable.cpp
- Timestamp:
- 12/05/16 17:47:54 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/src/node/variable.cpp
r987 r1009 85 85 if (context->hasClient) 86 86 { 87 // Use correct context client to send message 88 CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer 89 : context->client; 90 91 CEventClient event(this->getType(),EVENT_ID_VARIABLE_VALUE) ; 92 if (contextClientTmp->isServerLeader()) 87 // Use correct context client to send message 88 int nbSrvPools = (context->hasServer) ? context->clientPrimServer.size() : 1; 89 for (int i = 0; i < nbSrvPools; ++i) 93 90 { 94 CMessage msg ; 95 msg<<this->getId() ; 96 msg<<content ; 97 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 98 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 99 event.push(*itRank,1,msg); 100 contextClientTmp->sendEvent(event) ; 101 } 102 else contextClientTmp->sendEvent(event) ; 103 } 104 91 // CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer 92 CContextClient* contextClientTmp = (context->hasServer) ? context->clientPrimServer[i] 93 : context->client; 94 95 CEventClient event(this->getType(),EVENT_ID_VARIABLE_VALUE) ; 96 if (contextClientTmp->isServerLeader()) 97 { 98 CMessage msg ; 99 msg<<this->getId() ; 100 msg<<content ; 101 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 102 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 103 event.push(*itRank,1,msg); 104 contextClientTmp->sendEvent(event) ; 105 } 106 else contextClientTmp->sendEvent(event) ; 107 } 108 } 105 109 106 110 // if (!context->hasServer) … … 123 127 } 124 128 129 void CVariable::sendValue(const int srvPool) 130 { 131 CContext* context=CContext::getCurrent() ; 132 CContextClient* contextClientTmp = context->clientPrimServer[srvPool]; 133 CEventClient event(this->getType(),EVENT_ID_VARIABLE_VALUE) ; 134 if (contextClientTmp->isServerLeader()) 135 { 136 CMessage msg ; 137 msg<<this->getId() ; 138 msg<<content ; 139 const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 140 for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 141 event.push(*itRank,1,msg); 142 contextClientTmp->sendEvent(event) ; 143 } 144 else contextClientTmp->sendEvent(event) ; 145 } 146 125 147 /* 126 148 *\brief Receive value of a variable with its id from client to server
Note: See TracChangeset
for help on using the changeset viewer.