Changeset 1013 for XIOS/trunk/src/node/field.cpp
- Timestamp:
- 12/12/16 16:55:28 (7 years ago)
- File:
-
- 1 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
Note: See TracChangeset
for help on using the changeset viewer.