Ignore:
Timestamp:
06/25/19 16:14:54 (5 years ago)
Author:
yushan
Message:

MARK: Dynamic workflow graph developement. Branch up to date with trunk @1663.

File:
1 edited

Legend:

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

    r1671 r1677  
    5454      { 
    5555        filter->connectOutput(firstFilter, 0); 
    56         if (buildWorkflowGraph) 
    57         { 
    58           if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
    59           if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
    60           int filterOut = (std::static_pointer_cast<COutputPin>(filter))->getFilterId(); 
    61           int filterIn = (std::static_pointer_cast<COutputPin>(firstFilter))->getFilterId(); 
    62           // PASS field's id here 
    63           (*CWorkflowGraph::mapFieldToFilters_ptr)["XXX"].push_back(filterOut); 
    64           (*CWorkflowGraph::mapFieldToFilters_ptr)["XXX"].push_back(filterIn); 
    65           (*CWorkflowGraph::mapFilters_ptr)[filterOut] = "Spatial transform filter"; 
    66           (*CWorkflowGraph::mapFilters_ptr)[filterIn] = "Spatial transform filter"; 
    67           std::cout<<"CSpatialTransformFilter::CSpatialTransformFilter CWorkflowGraph::mapFieldToFilters_ptr->size = "<<CWorkflowGraph::mapFieldToFilters_ptr->size()<<std::endl; 
    68         } 
    6956      } 
    7057 
     
    8673  void CSpatialTransformFilter::onInputReady(std::vector<CDataPacketPtr> data) 
    8774  { 
     75    // if(CXios::isClient) std::cout<<"CSpatialTransformFilter onInputReady"<<std::endl; 
     76 
    8877    CSpatialTransformFilterEngine* spaceFilter = static_cast<CSpatialTransformFilterEngine*>(engine); 
    89     CDataPacketPtr outputPacket = spaceFilter->applyFilter(data, outputDefaultValue); 
     78    CDataPacketPtr outputPacket = spaceFilter->applyFilter(data, outputDefaultValue, this->tag, this->output_field_id); 
    9079    if (outputPacket) 
     80    { 
     81      // std::cout<<"Spatial Transform Filter onOutputReady"<<std::endl; 
    9182      onOutputReady(outputPacket); 
     83    }  
    9284  } 
    9385 
     
    120112  void CSpatialTemporalFilter::onInputReady(std::vector<CDataPacketPtr> data) 
    121113  { 
     114    if(CXios::isClient) std::cout<<"CSpatialTemporalFilter onInputReady"<<std::endl; 
     115 
    122116    CSpatialTransformFilterEngine* spaceFilter = static_cast<CSpatialTransformFilterEngine*>(engine); 
    123     CDataPacketPtr outputPacket = spaceFilter->applyFilter(data, outputDefaultValue); 
     117    CDataPacketPtr outputPacket = spaceFilter->applyFilter(data, outputDefaultValue, this->tag, this->output_field_id); 
    124118 
    125119    if (outputPacket) 
     
    146140        packet->data.resize(tmpData.numElements()); 
    147141        packet->data = tmpData; 
     142        std::cout<<"Spatial temporal filter onOutputReady"<<std::endl; 
    148143        onOutputReady(packet); 
    149144        tmpData.resize(0) ; 
     
    187182  } 
    188183 
    189   CDataPacketPtr CSpatialTransformFilterEngine::applyFilter(std::vector<CDataPacketPtr> data, double defaultValue) 
    190   { 
     184  CDataPacketPtr CSpatialTransformFilterEngine::applyFilter(std::vector<CDataPacketPtr> data, double defaultValue, int tag, StdString fieldID) 
     185  { 
     186    if(tag) 
     187    { 
     188      this->filterID = InvalidableObject::filterIdGenerator++; 
     189     
     190      std::cout<<"CSpatialTransformFilter::apply filter tag = "<<tag<<std::endl; 
     191     
     192 
     193      if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     194 
     195      (*CWorkflowGraph::mapFilters_ptr)[this->filterID] = "Spatial Transform Filter"; 
     196 
     197      if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
     198 
     199      StdString str = data[0]->fieldID + " ts=" + to_string(data[0]->timestamp); 
     200      (*CWorkflowGraph::mapFieldToFilters_ptr)[str].push_back(data[0]->src_filterID); 
     201      (*CWorkflowGraph::mapFieldToFilters_ptr)[str].push_back(this->filterID); 
     202    } 
     203 
     204 
    191205    CDataPacketPtr packet(new CDataPacket); 
    192206    packet->date = data[0]->date; 
     
    207221      apply(data[0]->data, packet->data); 
    208222    } 
     223 
     224    if(tag) packet->src_filterID=this->filterID; 
     225    packet->fieldID=fieldID; 
    209226 
    210227    return packet; 
Note: See TracChangeset for help on using the changeset viewer.