Ignore:
Timestamp:
06/04/21 11:54:38 (3 years ago)
Author:
yushan
Message:

Big commit on graph functionality. Add buildWorkflowGraph function for filters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/filter/client_to_server_store_filter.cpp

    r2130 r2143  
    77#include "field.hpp" 
    88#include "grid.hpp" 
     9#include "workflow_graph.hpp" 
    910 
    1011namespace xios 
     
    1213  CClientToServerStoreFilter::CClientToServerStoreFilter(CGarbageCollector& gc, CField* field, CContextClient* client) 
    1314    : CInputPin(gc, 1) 
    14     , field_(field), client_(client) 
     15    , field_(field), client_(client), graphEnabled(false) 
    1516  { 
    1617    if (!field) 
     
    2122  void CClientToServerStoreFilter::onInputReady(std::vector<CDataPacketPtr> data) 
    2223  { 
     24    buildWorkflowGraph(data); 
     25 
    2326    CTimer::get("Field : send data").resume(); 
    2427    CEventClient event(field_->getType(), CField::EVENT_ID_UPDATE_DATA); 
     
    2730    field_->getSentGrid()->getClientToServerConnector(client_)->transfer(data[0]->data, client_, event, message) ; 
    2831    CTimer::get("Field : send data").suspend(); 
     32  } 
     33 
     34  void CClientToServerStoreFilter::buildWorkflowGraph(std::vector<CDataPacketPtr> data) 
     35  { 
     36    if(this->graphEnabled) 
     37    { 
     38      this->graphPackage->filterId = CWorkflowGraph::getNodeSize(); 
     39      if(!data[0]->graphPackage) data[0]->graphPackage = new CGraphDataPackage; 
     40       
     41      std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 
     42       
     43      CWorkflowGraph::addNode("Client to Server Store filter", 6, true, 1, data[0]); 
     44      
     45      CWorkflowGraph::addEdge(data[0]->graphPackage->fromFilter, this->graphPackage->filterId, data[0]); 
     46      // flux can be redirected to other filters. So don't change the 'from' parameter 
     47      data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 
     48    } 
    2949  } 
    3050   
Note: See TracChangeset for help on using the changeset viewer.