Changeset 1871 for XIOS/dev/dev_ym/XIOS_COUPLING/src/node/context.cpp
- Timestamp:
- 04/21/20 16:46:20 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_ym/XIOS_COUPLING/src/node/context.cpp
r1870 r1871 1017 1017 // postProcessing(); 1018 1018 1019 1019 1020 // Make sure the calendar was correctly created 1021 if (serviceType_!=CServicesManager::CLIENT) CCalendarWrapper::get(CCalendarWrapper::GetDefName())->createCalendar(); 1020 1022 if (!calendar) 1021 1023 ERROR("CContext::postProcessing()", << "A calendar must be defined for the context \"" << getId() << "!\"") … … 1058 1060 vector<CField*>& fieldWithReadAccess = fieldsWithReadAccess_ ; 1059 1061 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 1061 1077 // find all field potentially at workflow end 1062 1078 vector<CField*> endWorkflowFields ; … … 1088 1104 } 1089 1105 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 1090 1127 1091 1128 // workflow startpoint => data from model … … 1098 1135 } 1099 1136 } 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 1102 1170 1103 1171
Note: See TracChangeset
for help on using the changeset viewer.