Ignore:
Timestamp:
12/05/16 17:47:54 (7 years ago)
Author:
oabramkina
Message:

First working version with compression by secondary servers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_olga/src/node/file.cpp

    r987 r1009  
    235235      const int recordOffset = record_offset.isEmpty() ? 0 : record_offset; 
    236236 
    237       set<CAxis*> setAxis; 
    238       set<CDomain*> setDomains; 
     237//      set<CAxis*> setAxis; 
     238//      set<CDomain*> setDomains; 
     239      set<StdString> setAxis; 
     240      set<StdString> setDomains; 
    239241 
    240242      std::vector<CField*>::iterator it, end = this->enabledFields.end(); 
     
    245247         std::vector<CAxis*> vecAxis = field->grid->getAxis(); 
    246248         for (size_t i = 0; i < vecAxis.size(); ++i) 
    247             setAxis.insert(vecAxis[i]); 
     249           setAxis.insert(vecAxis[i]->getAxisOutputName()); 
     250//            setAxis.insert(vecAxis[i]); 
    248251         std::vector<CDomain*> vecDomains = field->grid->getDomains(); 
    249252         for (size_t i = 0; i < vecDomains.size(); ++i) 
    250             setDomains.insert(vecDomains[i]); 
     253           setDomains.insert(vecDomains[i]->getDomainOutputName()); 
     254//            setDomains.insert(vecDomains[i]); 
    251255 
    252256         field->resetNStep(recordOffset); 
     
    849853   } 
    850854 
     855   void CFile::sendAddField(const string& id, const int srvPool) 
     856   { 
     857      sendAddItem(id, EVENT_ID_ADD_FIELD, srvPool); 
     858    // CContext* context = CContext::getCurrent(); 
     859 
     860    // if (! context->hasServer ) 
     861    // { 
     862    //    CContextClient* client = context->client; 
     863 
     864    //    CEventClient event(this->getType(),EVENT_ID_ADD_FIELD); 
     865    //    if (client->isServerLeader()) 
     866    //    { 
     867    //      CMessage msg; 
     868    //      msg << this->getId(); 
     869    //      msg << id; 
     870    //      const std::list<int>& ranks = client->getRanksServerLeader(); 
     871    //      for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
     872    //        event.push(*itRank,1,msg); 
     873    //      client->sendEvent(event); 
     874    //    } 
     875    //    else client->sendEvent(event); 
     876    // } 
     877 
     878   } 
     879 
    851880   /*! 
    852881   \brief Send a message to create a field group on server side 
     
    945974   } 
    946975 
     976   void CFile::sendAddAllVariables(const int srvPool) 
     977   { 
     978     std::vector<CVariable*> allVar = getAllVariables(); 
     979     std::vector<CVariable*>::const_iterator it = allVar.begin(); 
     980     std::vector<CVariable*>::const_iterator itE = allVar.end(); 
     981 
     982     for (; it != itE; ++it) 
     983     { 
     984       this->sendAddVariable((*it)->getId(), srvPool); 
     985       (*it)->sendAllAttributesToServer(srvPool); 
     986       (*it)->sendValue(srvPool); 
     987     } 
     988   } 
     989 
     990   /*! 
     991   \brief Send a message to create a variable group on server side 
     992   \param[in] id String identity of variable group that will be created on server 
     993   */ 
     994   void CFile::sendAddVariableGroup(const string& id) 
     995   { 
     996      sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE_GROUP); 
     997    // CContext* context = CContext::getCurrent(); 
     998    // if (! context->hasServer ) 
     999    // { 
     1000    //    CContextClient* client = context->client; 
     1001 
     1002    //    CEventClient event(this->getType(),EVENT_ID_ADD_VARIABLE_GROUP); 
     1003    //    if (client->isServerLeader()) 
     1004    //    { 
     1005    //      CMessage msg; 
     1006    //      msg << this->getId(); 
     1007    //      msg << id; 
     1008    //      const std::list<int>& ranks = client->getRanksServerLeader(); 
     1009    //      for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 
     1010    //        event.push(*itRank,1,msg); 
     1011    //      client->sendEvent(event); 
     1012    //    } 
     1013    //    else client->sendEvent(event); 
     1014    // } 
     1015 
     1016   } 
     1017 
    9471018   /*! 
    9481019   \brief Send a message to create a variable on server side 
     
    9751046   } 
    9761047 
    977    /*! 
    978    \brief Send a message to create a variable group on server side 
    979    \param[in] id String identity of variable group that will be created on server 
    980    */ 
    981    void CFile::sendAddVariableGroup(const string& id) 
    982    { 
    983       sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE_GROUP); 
     1048   void CFile::sendAddVariable(const string& id, const int srvPool) 
     1049   { 
     1050      sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE, srvPool); 
    9841051    // CContext* context = CContext::getCurrent(); 
     1052 
    9851053    // if (! context->hasServer ) 
    9861054    // { 
    9871055    //    CContextClient* client = context->client; 
    9881056 
    989     //    CEventClient event(this->getType(),EVENT_ID_ADD_VARIABLE_GROUP); 
     1057    //    CEventClient event(this->getType(),EVENT_ID_ADD_VARIABLE); 
    9901058    //    if (client->isServerLeader()) 
    9911059    //    { 
     
    10701138   } 
    10711139 
     1140   void CFile::sendEnabledFields(const int srvPool) 
     1141   { 
     1142     size_t size = this->enabledFields.size(); 
     1143     for (size_t i = 0; i < size; ++i) 
     1144     { 
     1145       CField* field = this->enabledFields[i]; 
     1146       this->sendAddField(field->getId(), srvPool); 
     1147       field->sendAllAttributesToServer(srvPool); 
     1148       field->sendAddAllVariables(srvPool); 
     1149     } 
     1150   } 
     1151 
    10721152   /*! 
    10731153   \brief Dispatch event received from client 
Note: See TracChangeset for help on using the changeset viewer.