Ignore:
Timestamp:
07/08/19 16:58:12 (5 years ago)
Author:
yushan
Message:

MARK: Dynamic workflow graph developement. Branch up to date with trunk @1676. Arithmetic filter unified

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_trunk_omp/src/filter/ternary_arithmetic_filter.cpp

    r1679 r1680  
    11#include "ternary_arithmetic_filter.hpp" 
    22#include "workflow_graph.hpp" 
     3#include "yacc_var.hpp" 
    34 
    45namespace xios 
     
    910    , value1(value1) 
    1011    , value2(value2) 
    11   { /* Nothing to do */ }; 
     12  {  
     13    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     14    /* Nothing to do */  
     15  }; 
    1216 
    1317  CDataPacketPtr CScalarScalarFieldArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    2024       int edgeID = InvalidableObject::edgeIdGenerator++; 
    2125     
    22       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    23       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     26      CWorkflowGraph::allocNodeEdge(); 
    2427 
    2528      std::cout<<"CScalarScalarFieldArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    2629 
    27       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "SSF Filter"; 
    28       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    29       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    30       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 1; 
    31       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    32       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     30 
     31 
     32      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 1, data[0]); 
    3333 
    3434 
     
    6161    , value1(value1) 
    6262    , value2(value2) 
    63   { /* Nothing to do */ }; 
     63  {  
     64    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     65    /* Nothing to do */  
     66  }; 
    6467 
    6568  CDataPacketPtr CScalarFieldScalarArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    7376     
    7477 
    75       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    76       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     78      CWorkflowGraph::allocNodeEdge(); 
    7779 
    7880      std::cout<<"CScalarFieldScalarArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    7981 
    80       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "SFS Filter"; 
    81       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    82       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    83       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 1; 
    84       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    85       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     82 
     83 
     84      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 1, data[0]); 
    8685 
    8786      if(CWorkflowGraph::build_begin) 
     
    111110    , op(operatorExpr.getOpScalarFieldField(op)) 
    112111    , value(value) 
    113   { /* Nothing to do */ }; 
     112  {  
     113    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     114    /* Nothing to do */  
     115  }; 
    114116 
    115117  CDataPacketPtr CScalarFieldFieldArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    123125     
    124126 
    125       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    126       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     127      CWorkflowGraph::allocNodeEdge(); 
    127128 
    128129      std::cout<<"CScalarFieldFieldArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    129130 
    130       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "SFF Filter"; 
    131       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    132       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    133       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 2; 
    134       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    135       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     131 
     132      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 2, data[0]); 
    136133 
    137134      if(CWorkflowGraph::build_begin) 
     
    177174    , value1(value1) 
    178175    , value2(value2) 
    179   { /* Nothing to do */ }; 
     176  {  
     177    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     178    /* Nothing to do */  
     179  }; 
    180180 
    181181  CDataPacketPtr CFieldScalarScalarArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    189189     
    190190 
    191       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    192       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     191      CWorkflowGraph::allocNodeEdge(); 
    193192 
    194193      std::cout<<"CFieldScalarScalarArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    195194 
    196       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "FSS Filter"; 
    197       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    198       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    199       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 1; 
    200       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    201       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     195      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 1, data[0]); 
    202196 
    203197      if(CWorkflowGraph::build_begin) 
     
    229223    , op(operatorExpr.getOpFieldScalarField(op)) 
    230224    , value(value) 
    231   { /* Nothing to do */ }; 
     225  {  
     226    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     227    /* Nothing to do */  
     228  }; 
    232229 
    233230  CDataPacketPtr CFieldScalarFieldArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    241238     
    242239 
    243       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    244       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     240      CWorkflowGraph::allocNodeEdge(); 
    245241 
    246242      std::cout<<"CFieldScalarFieldArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    247243 
    248       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "FSF Filter"; 
    249       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    250       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    251       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 2; 
    252       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    253       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     244      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 2, data[0]); 
    254245 
    255246      if(CWorkflowGraph::build_begin) 
     
    291282    , op(operatorExpr.getOpFieldFieldScalar(op)) 
    292283    , value(value) 
    293   { /* Nothing to do */ }; 
     284  {  
     285    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     286    std::cout<<"expression = "<<expression; 
     287    /* Nothing to do */  
     288  }; 
    294289 
    295290  CDataPacketPtr CFieldFieldScalarArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    302297      int edgeID = InvalidableObject::edgeIdGenerator++; 
    303298     
    304       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    305       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     299      CWorkflowGraph::allocNodeEdge(); 
    306300 
    307301      std::cout<<"CFieldFieldScalarArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    308302 
    309       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "FFS Filter"; 
    310       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    311       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    312       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 2; 
    313       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    314       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     303 
     304      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 2, data[0]); 
    315305 
    316306      if(CWorkflowGraph::build_begin) 
     
    352342    : CFilter(gc, 3, this) 
    353343    , op(operatorExpr.getOpFieldFieldField(op)) 
    354   { /* Nothing to do */ }; 
     344  {  
     345    expression.assign(*yacc_globalInputText_ptr, 0, yacc_globalInputText_ptr->size()-1); 
     346    /* Nothing to do */  
     347  }; 
    355348 
    356349  CDataPacketPtr CFieldFieldFieldArithmeticFilter::apply(std::vector<CDataPacketPtr> data) 
     
    364357     
    365358 
    366       if(CWorkflowGraph::mapFieldToFilters_ptr_with_info==0) CWorkflowGraph::mapFieldToFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_edge >; 
    367       if(CWorkflowGraph::mapFilters_ptr_with_info==0) CWorkflowGraph::mapFilters_ptr_with_info = new std::unordered_map <int, graph_info_box_node>; 
     359      CWorkflowGraph::allocNodeEdge(); 
    368360 
    369361      std::cout<<"CFieldFieldFieldArithmeticFilter::apply connection = "<<data[0]->src_filterID<<" <-> "<<this->filterID<<std::endl; 
    370362 
    371       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_name = "FFF Filter"; 
    372       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_class = 2; 
    373       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].filter_filled = 1; 
    374       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].expected_entry_nb = 3; 
    375       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].date = data[0]->date; 
    376       (*CWorkflowGraph::mapFilters_ptr_with_info)[this->filterID].timestamp = data[0]->timestamp; 
     363 
     364      CWorkflowGraph::addNode(this->filterID, "Arithmetic Filter\\n("+expression+")", 3, 1, 3, data[0]); 
    377365 
    378366      if(CWorkflowGraph::build_begin) 
Note: See TracChangeset for help on using the changeset viewer.