Changeset 1013 for XIOS/trunk
- Timestamp:
- 12/12/16 16:55:28 (7 years ago)
- Location:
- XIOS/trunk/src/node
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/node/field.cpp
r1011 r1013 36 36 , domAxisScalarIds_(vector<StdString>(3,"")), areAllReferenceSolved(false), isReferenceSolved(false) 37 37 , useCompressedOutput(false) 38 , isReadDataRequestPending(false)39 38 , hasTimeInstant(false) 40 39 , hasTimeCentered(false) 40 , wasDataAlreadyReceivedFromServer(false) 41 41 { setVirtualVariableGroup(CVariableGroup::create(getId() + "_virtual_variable_group")); } 42 42 … … 49 49 , domAxisScalarIds_(vector<StdString>(3,"")), areAllReferenceSolved(false), isReferenceSolved(false) 50 50 , useCompressedOutput(false) 51 , isReadDataRequestPending(false)52 51 , hasTimeInstant(false) 53 52 , hasTimeCentered(false) 53 , wasDataAlreadyReceivedFromServer(false) 54 54 { setVirtualVariableGroup(CVariableGroup::create(getId() + "_virtual_variable_group")); } 55 55 … … 251 251 } 252 252 253 void CField::sendReadDataRequest( void)253 void CField::sendReadDataRequest(const CDate& tsDataRequested) 254 254 { 255 255 CContext* context = CContext::getCurrent(); 256 256 CContextClient* client = context->client; 257 257 258 lastDataRequestedFromServer = context->getCalendar()->getCurrentDate(); 259 isReadDataRequestPending = true; 258 lastDataRequestedFromServer = tsDataRequested; 260 259 261 260 CEventClient event(getType(), EVENT_ID_READ_DATA); … … 280 279 const CDate& currentDate = CContext::getCurrent()->getCalendar()->getCurrentDate(); 281 280 282 bool requestData = (currentDate >= lastDataRequestedFromServer + file->output_freq.getValue()); 283 284 if (requestData) 285 { 286 info(20) <<"currentDate : "<<currentDate<<endl ; 287 info(20) <<"lastDataRequestedFromServer : "<<lastDataRequestedFromServer<<endl ; 288 info(20) <<"file->output_freq.getValue() : "<<file->output_freq.getValue()<<endl ; 289 info(20) <<"lastDataRequestedFromServer + file->output_freq.getValue() : "<<lastDataRequestedFromServer + file->output_freq.getValue()<<endl ; 290 291 sendReadDataRequest(); 292 } 293 294 return requestData; 281 bool dataRequested = false; 282 283 while (currentDate >= lastDataRequestedFromServer) 284 { 285 info(20) << "currentDate : " << currentDate << endl ; 286 info(20) << "lastDataRequestedFromServer : " << lastDataRequestedFromServer << endl ; 287 info(20) << "file->output_freq.getValue() : " << file->output_freq.getValue() << endl ; 288 info(20) << "lastDataRequestedFromServer + file->output_freq.getValue() : " << lastDataRequestedFromServer + file->output_freq << endl ; 289 290 sendReadDataRequest(lastDataRequestedFromServer + file->output_freq); 291 292 dataRequested = true; 293 } 294 295 return dataRequested; 295 296 } 296 297 … … 394 395 this->incrementNStep(); 395 396 396 397 398 397 if (getNStep() > nstepMax && (getRelFile()->cyclic.isEmpty() || !getRelFile()->cyclic) ) 399 398 return false; … … 443 442 } 444 443 444 if (wasDataAlreadyReceivedFromServer) 445 lastDataReceivedFromServer = lastDataReceivedFromServer + file->output_freq; 446 else 447 { 448 lastDataReceivedFromServer = context->getCalendar()->getInitDate(); 449 wasDataAlreadyReceivedFromServer = true; 450 } 451 445 452 if (isEOF) 446 serverSourceFilter->signalEndOfStream(lastDataRe questedFromServer);453 serverSourceFilter->signalEndOfStream(lastDataReceivedFromServer); 447 454 else 448 serverSourceFilter->streamDataFromServer(lastDataRequestedFromServer, data); 449 450 isReadDataRequestPending = false; 455 serverSourceFilter->streamDataFromServer(lastDataReceivedFromServer, data); 451 456 } 452 457 -
XIOS/trunk/src/node/field.hpp
r1000 r1013 143 143 void recvUpdateData(vector<int>& ranks, vector<CBufferIn*>& buffers); 144 144 void writeField(void); 145 void sendReadDataRequest( void);145 void sendReadDataRequest(const CDate& tsDataRequested); 146 146 bool sendReadDataRequestIfNeeded(void); 147 147 static void recvReadDataRequest(CEventServer& event); … … 195 195 bool isEOF; 196 196 CDate lastlast_Write_srv, last_Write_srv, last_operation_srv; 197 CDate lastDataRequestedFromServer; 197 CDate lastDataRequestedFromServer, lastDataReceivedFromServer; 198 bool wasDataAlreadyReceivedFromServer; 198 199 199 200 map<int,boost::shared_ptr<func::CFunctor> > foperation_srv; … … 205 206 bool isReferenceSolved; 206 207 std::vector<StdString> domAxisScalarIds_; 207 bool isReadDataRequestPending;208 208 bool useCompressedOutput; 209 209 -
XIOS/trunk/src/node/file.cpp
r1011 r1013 745 745 int size = this->enabledFields.size(); 746 746 for (int i = 0; i < size; ++i) 747 this->enabledFields[i]->sendReadDataRequest( );747 this->enabledFields[i]->sendReadDataRequest(CContext::getCurrent()->getCalendar()->getCurrentDate()); 748 748 } 749 749
Note: See TracChangeset
for help on using the changeset viewer.