Ignore:
Timestamp:
04/21/20 16:46:20 (4 years ago)
Author:
ymipsl
Message:

Some update on XIOS_COUPLING branch...

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/node/context.cpp

    r1870 r1871  
    10171017//     postProcessing(); 
    10181018 
     1019     
    10191020    // Make sure the calendar was correctly created 
     1021    if (serviceType_!=CServicesManager::CLIENT) CCalendarWrapper::get(CCalendarWrapper::GetDefName())->createCalendar(); 
    10201022    if (!calendar) 
    10211023      ERROR("CContext::postProcessing()", << "A calendar must be defined for the context \"" << getId() << "!\"") 
     
    10581060    vector<CField*>& fieldWithReadAccess = fieldsWithReadAccess_ ; 
    10591061    vector<CField*> fieldModelIn ; // fields potentially from model 
    1060        
     1062      
     1063    // define if files are on clientSied or serverSide  
     1064    if (serviceType_==CServicesManager::CLIENT) 
     1065    { 
     1066      for (auto& file : enabledWriteModeFiles) file->setClientSide() ; 
     1067      for (auto& file : enabledReadModeFiles) file->setClientSide() ; 
     1068    } 
     1069    else 
     1070    { 
     1071      for (auto& file : enabledWriteModeFiles) file->setServerSide() ; 
     1072      for (auto& file : enabledReadModeFiles) file->setServerSide() ; 
     1073    } 
     1074 
     1075 
     1076 
    10611077// find all field potentially at workflow end 
    10621078    vector<CField*> endWorkflowFields ; 
     
    10881104    } 
    10891105 
     1106    // workflow endpoint => write to file 
     1107    if (serviceType_==CServicesManager::IO_SERVER || serviceType_==CServicesManager::OUT_SERVER) 
     1108    { 
     1109      for(auto field : fileOutField)  
     1110      { 
     1111        field->connectToFileWriter(garbageCollector) ; // connect the field to server filter 
     1112      } 
     1113    } 
     1114     
     1115    // workflow endpoint => Send data from server to client 
     1116    if (serviceType_==CServicesManager::IO_SERVER || serviceType_==CServicesManager::GATHERER) 
     1117    { 
     1118      // no filter to send data from server to client => to be implemented (reading case) 
     1119    } 
     1120 
     1121    // workflow endpoint => sent to model on client side 
     1122    if (serviceType_==CServicesManager::CLIENT) 
     1123    { 
     1124      for(auto field : fieldWithReadAccess) field->connectToModelOutput(garbageCollector) ; 
     1125    } 
     1126 
    10901127 
    10911128    // workflow startpoint => data from model 
     
    10981135      } 
    10991136    } 
    1100  
    1101    
     1137     
     1138    // workflow startpoint => data from client on server side 
     1139    if (serviceType_==CServicesManager::IO_SERVER || serviceType_==CServicesManager::GATHERER || serviceType_==CServicesManager::OUT_SERVER) 
     1140    { 
     1141      for(auto field : fieldModelIn)  
     1142      { 
     1143        field->connectToClientInput(garbageCollector) ; // connect the field to server filter 
     1144      } 
     1145    } 
     1146 
     1147     // workflow startpoint => data from server on client side 
     1148    if (serviceType_==CServicesManager::CLIENT) 
     1149    { 
     1150      for(auto field : fileInField)  
     1151      { 
     1152        field->connectToServerInput(garbageCollector) ; // connect the field to server filter 
     1153        field->computeGridIndexToFileServer() ; // compute grid index for transfer to the server context 
     1154        field->sendFieldToFileServer() ; 
     1155      } 
     1156    } 
     1157 
     1158    // workflow startpoint => data read from file on server side 
     1159    if (serviceType_==CServicesManager::IO_SERVER || serviceType_==CServicesManager::GATHERER) 
     1160    { 
     1161      // no filter for reading data from file => to be implemented 
     1162    } 
     1163 
     1164 
     1165    if (serviceType_==CServicesManager::CLIENT || serviceType_==CServicesManager::GATHERER) this->sendCloseDefinition(); 
     1166    if (serviceType_==CServicesManager::IO_SERVER || serviceType_==CServicesManager::OUT_SERVER)  createFileHeader(); 
     1167    if (serviceType_==CServicesManager::CLIENT) startPrefetchingOfEnabledReadModeFiles(); 
     1168    
     1169 
    11021170 
    11031171 
Note: See TracChangeset for help on using the changeset viewer.