Ignore:
Timestamp:
11/10/16 13:29:57 (7 years ago)
Author:
mhnguyen
Message:

First working version.
There are more things to do with it

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/group_template_impl.hpp

    r595 r987  
    373373   void CGroupTemplate<U, V, W>::sendCreateChild(const string& id) 
    374374   { 
    375     CContext* context=CContext::getCurrent() ; 
    376      
    377     if (! context->hasServer ) 
     375    CContext* context=CContext::getCurrent() ;   
     376 
     377    if (context->hasClient) 
     378    // if (!context->hasServer ) 
    378379    { 
    379        CContextClient* client=context->client ; 
     380      // Use correct context client to send message 
     381       CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer : context->client; 
    380382 
    381383       CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD) ;    
    382        if (client->isServerLeader()) 
     384       if (contextClientTmp->isServerLeader()) 
    383385       { 
    384386         CMessage msg ; 
    385387         msg<<this->getId() ; 
    386388         msg<<id ; 
    387          const std::list<int>& ranks = client->getRanksServerLeader(); 
     389         const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 
    388390         for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
    389391           event.push(*itRank,1,msg) ; 
    390          client->sendEvent(event) ; 
     392         contextClientTmp->sendEvent(event) ; 
    391393       } 
    392        else client->sendEvent(event) ; 
     394       else contextClientTmp->sendEvent(event) ; 
    393395    } 
     396 
     397    // if (! context->hasServer ) 
     398    // { 
     399    //    CContextClient* client=context->client ; 
     400 
     401    //    CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD) ;    
     402    //    if (client->isServerLeader()) 
     403    //    { 
     404    //      CMessage msg ; 
     405    //      msg<<this->getId() ; 
     406    //      msg<<id ; 
     407    //      const std::list<int>& ranks = client->getRanksServerLeader(); 
     408    //      for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
     409    //        event.push(*itRank,1,msg) ; 
     410    //      client->sendEvent(event) ; 
     411    //    } 
     412    //    else client->sendEvent(event) ; 
     413    // } 
    394414       
    395415   } 
     
    399419   { 
    400420    CContext* context=CContext::getCurrent() ; 
    401     if (! context->hasServer ) 
     421 
     422        // if (! context->hasServer ) 
     423    if (context->hasClient) 
    402424    { 
    403        CContextClient* client=context->client ; 
     425        // Use correct context client to send message 
     426       CContextClient* contextClientTmp = (0 != context->clientPrimServer) ? context->clientPrimServer : context->client; 
    404427 
    405428       CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD_GROUP) ;    
    406        if (client->isServerLeader()) 
     429       if (contextClientTmp->isServerLeader()) 
    407430       { 
    408431         CMessage msg ; 
    409432         msg<<this->getId() ; 
    410433         msg<<id ; 
    411          const std::list<int>& ranks = client->getRanksServerLeader(); 
     434         const std::list<int>& ranks = contextClientTmp->getRanksServerLeader(); 
    412435         for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
    413436           event.push(*itRank,1,msg) ; 
    414          client->sendEvent(event) ; 
     437         contextClientTmp->sendEvent(event) ; 
    415438       } 
    416        else client->sendEvent(event) ; 
     439       else contextClientTmp->sendEvent(event) ; 
    417440    } 
     441 
     442    // if (! context->hasServer ) 
     443    // { 
     444    //    CContextClient* client=context->client ; 
     445 
     446    //    CEventClient event(this->getType(),EVENT_ID_CREATE_CHILD_GROUP) ;    
     447    //    if (client->isServerLeader()) 
     448    //    { 
     449    //      CMessage msg ; 
     450    //      msg<<this->getId() ; 
     451    //      msg<<id ; 
     452    //      const std::list<int>& ranks = client->getRanksServerLeader(); 
     453    //      for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
     454    //        event.push(*itRank,1,msg) ; 
     455    //      client->sendEvent(event) ; 
     456    //    } 
     457    //    else client->sendEvent(event) ; 
     458    // } 
    418459       
    419460   } 
Note: See TracChangeset for help on using the changeset viewer.