Ignore:
Timestamp:
12/06/20 22:14:56 (3 years ago)
Author:
ymipsl
Message:

intermediate commit for new tranformation engine?
YM

File:
1 edited

Legend:

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

    r1973 r1984  
    766766 
    767767      CGrid* gridSrc=getDirectFieldReference()->getGrid() ; 
     768      std::shared_ptr<COutputPin> lastFilter ; 
     769      if (filterExpr) lastFilter=filterExpr ; 
     770      else lastFilter = inputFilter ; 
     771      CGrid* newGrid ;     
     772       
    768773      for(auto grid : gridPath) 
    769774      { 
    770775        grid->solveElementsRefInheritance() ; 
     776        
     777        // new 
     778         
     779        std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid->buildTransformationGraph(gc, gridSrc, detectMissingValues, defaultValue, newGrid) ; 
     780        lastFilter->connectOutput(filters.first, 0); 
     781        lastFilter = filters.second; 
     782        gridSrc = newGrid ; 
     783 
     784        // end new 
     785/* 
    771786        grid->completeGrid(gridSrc); // grid generation, to be checked 
    772787        grid->checkElementsAttributes() ; 
     
    775790          if (!CField::get(fieldId)->buildWorkflowGraph(gc)) return false ; 
    776791        gridSrc=grid ; 
    777       } 
    778        
     792*/ 
     793      } 
     794 
     795    /*   
    779796      std::shared_ptr<COutputPin> lastFilter ; 
    780797      if (filterExpr) lastFilter=filterExpr ; 
     
    793810        } 
    794811      } 
     812    */ 
     813      grid_=newGrid ; 
     814      grid_ref=grid_->getId() ; // for server  
    795815      instantDataFilter = lastFilter ; 
    796816       
     
    824844 
    825845        grid_->solveElementsRefInheritance() ; 
    826         grid_->completeGrid(); // grid generation, to be checked 
     846        CGrid* newGrid ; 
     847        std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = grid_->buildTransformationGraph(gc, nullptr, detectMissingValues, defaultValue, newGrid) ; 
     848        grid_ = newGrid ; 
     849        grid_ref=grid_->getId() ; // for server  
     850//        grid_->completeGrid(); // grid generation, to be checked => later 
    827851        grid_->checkElementsAttributes() ; 
    828852        instantDataFilter=inputFilter ; 
     
    16031627    CContext::getCurrent()->sendContextToFileServer(client); 
    16041628    getRelFile()->sendFileToFileServer(client); 
    1605     grid_->sendGridToFileServer(client); 
     1629    sentGrid_ = grid_-> duplicateSentGrid() ; 
     1630    sentGrid_->sendGridToFileServer(client); 
     1631    name = getFieldOutputName() ; 
    16061632    this->sendAllAttributesToServer(client); 
    16071633    this->sendAddAllVariables(client); 
     
    16971723    if (grid_ref.isEmpty()) 
    16981724    { 
    1699       grid_ref=grid_->getId() ; 
     1725      grid_ref=sentGrid_->getId() ; 
    17001726      SuperClass::sendAllAttributesToServer(client) ; 
    17011727      domain_ref.reset() ; 
     
    17041730      grid_ref.reset(); 
    17051731    } 
    1706     else SuperClass::sendAllAttributesToServer(client) ; 
     1732    else  
     1733    { 
     1734      string tmp = grid_ref; 
     1735      grid_ref = sentGrid_->getId() ; 
     1736      SuperClass::sendAllAttributesToServer(client) ; 
     1737      grid_ref = tmp ; 
     1738    } 
    17071739  } 
    17081740  CATCH_DUMP_ATTR 
Note: See TracChangeset for help on using the changeset viewer.