Ignore:
Timestamp:
05/19/11 19:06:32 (13 years ago)
Author:
hozdoba
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/xmlio/server.cpp

    r196 r198  
    2626      while (this->blist.recvRequests()) 
    2727      { 
    28          long int managerId = 0, methodId  = 0, nbargs  = 0; 
    29          long int managerId_= 0, methodId_ = 0, nbargs_ = 0; 
     28         long int managerId = -1, methodId  = -1, nbargs  = -1; 
     29         long int managerId_= -1, methodId_ = -1, nbargs_ = -1; 
    3030         std::vector<CLinearBuffer> lbuffer; 
    3131         this->blist.getRequests(lbuffer); 
     32                  
    3233         for (StdSize i = 0; i < lbuffer.size(); i++) 
    33          { 
     34         {            
    3435            lbuffer[i].getRequestInfos(0, managerId, methodId, nbargs); 
    3536            if (((managerId_ != managerId) || (methodId_ != methodId) || (nbargs_ != nbargs)) && (i != 0 )) 
    3637            { 
    37                /*std::cout << managerId_ << "<->" << managerId << std::endl 
    38                            << methodId_  << "<->" << methodId  << std::endl 
    39                            << nbargs_    << "<->" << nbargs    << std::endl;*/ 
     38               //std::cout << managerId_ << "<->" << managerId << std::endl 
     39               //          << methodId_  << "<->" << methodId  << std::endl 
     40               //          << nbargs_    << "<->" << nbargs    << std::endl; 
    4041               ERROR("CServer::run(void)", << "[" << i << "] Les requêtes ne sont pas synchronisées !"); 
    4142            } 
     
    119120   { 
    120121      std::cout << "finalize called " << std::endl; 
    121    } 
    122     
     122   }    
    123123    
    124124   //-------------------------------------------------------------- 
    125125              
    126126   void CServer::setContext(const std::vector<CLinearBuffer> & buffer) // manager 1, method 0 
    127    { 
    128       std::cout << "setContext called " << std::endl; 
     127   {  
     128      StdString contextId; 
     129      for (StdSize i = 0; i < buffer.size(); i++) 
     130      { 
     131         StdString contextId_ = buffer[i].getString(3); 
     132         if (contextId.compare(contextId_) != 0 && (i != 0)) 
     133         { 
     134            ERROR("CServer::setContext(const std::vector<CLinearBuffer> & buffer)",  
     135                  << "[ contextId 1 = " << contextId   << ", " 
     136                  << "[ contextId 2 = " << contextId_  << "] " 
     137                  << " Changement de contexte désynchronisé !"); 
     138         } 
     139         else contextId = contextId_; 
     140          
     141      } 
     142      std::cout << "setContext called " << contextId << std::endl; 
    129143   } 
    130144    
     
    133147   void CServer::updateCalendar(const std::vector<CLinearBuffer> & buffer) // manager 1, method 1 
    134148   { 
    135       std::cout << "updateCalendar called " << std::endl; 
     149      int timestep = -1; 
     150      for (StdSize i = 0; i < buffer.size(); i++) 
     151      { 
     152         int timestep_ = buffer[i].getInt(3); 
     153         if ((timestep_ != timestep)  && (i != 0)) 
     154         { 
     155            ERROR("CServer::updateCalendar(const std::vector<CLinearBuffer> & buffer)",  
     156                  << "[ timestep 1 = " << timestep   << ", " 
     157                  << "[ timestep 2 = " << timestep_  << "] " 
     158                  << " Mise à jour du calendrier désynchronisée !"); 
     159         } 
     160         else timestep = timestep_; 
     161          
     162      } 
     163      std::cout << "updateCalendar called " << timestep <<std::endl; 
    136164   } 
    137165    
     
    140168   void CServer::writeData(const std::vector<CLinearBuffer> & buffer, int prec)  // manager 2, method 0 - 1 
    141169   { 
    142       std::cout << "writeData called " << std::endl; 
     170      StdString fieldId; 
     171      for (StdSize i = 0; i < buffer.size(); i++) 
     172      { 
     173         StdString fieldId_ = buffer[i].getString(3); 
     174         if (fieldId.compare(fieldId_) != 0 && (i != 0)) 
     175         {            
     176            ERROR("CServer::writeData(const std::vector<CLinearBuffer> & buffer, int prec)",  
     177                  << "[fieldId 1 = " << fieldId   << ", " 
     178                  << " fieldId 2 = " << fieldId_  << "] " 
     179                  << " Ecriture des données désynchronisée !"); 
     180         } 
     181         else fieldId = fieldId_;          
     182      } 
     183       
     184      if (prec == 4) 
     185      { 
     186         std::deque<ARRAY(float, 1)> dataArray(buffer.size()); 
     187         for (StdSize i = 0; i < buffer.size(); i++) 
     188            dataArray[i] = buffer[i].getFloatArray(4); 
     189 
     190         std::cout << "writeData called (float) " << fieldId << ", " << dataArray[0] << std::endl; 
     191         return; 
     192      }       
     193      else if (prec == 8) 
     194      { 
     195         std::deque<ARRAY(double, 1)> dataArray(buffer.size()); 
     196         for (StdSize i = 0; i < buffer.size(); i++) 
     197            dataArray[i] = buffer[i].getDoubleArray(4); 
     198 
     199         std::cout << "writeData called (double) " << fieldId << ", " << dataArray[0]  << std::endl; 
     200         return; 
     201      }       
     202      else 
     203      { 
     204         ERROR("CServer::writeData(const std::vector<CLinearBuffer> & buffer, int prec)",  
     205               << " Précision des données invalide !"); 
     206      } 
    143207   } 
    144208   
Note: See TracChangeset for help on using the changeset viewer.