Ignore:
Timestamp:
06/04/19 10:00:52 (5 years ago)
Author:
yushan
Message:

MARK: branch merged with trunk @1663. One output graph file with output file names in file writer filter.

File:
1 edited

Legend:

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

    r1670 r1671  
    11971197               if (buildWorkflowGraph) 
    11981198               { 
    1199                  if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1200                  if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >; 
     1199                 if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     1200                 if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
    12011201                 int filterOut = filter->getFilterId(); 
    12021202                 int filterIn = (std::static_pointer_cast<COutputPin>(filters.second))->getFilterId(); 
    1203                  (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterOut); 
    1204                  (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterIn); 
    1205                  (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = filter->GetName(); 
    1206                  (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = filters.second->GetName(); 
    1207                  std::cout<<"CField::buildFilterGraph1 filterIn["<<filterIn<< "] = "<<filters.second->GetName()<< std::endl; 
    1208                  std::cout<<"CField::buildFilterGraph1 filterOut["<<filterOut<< "] = "<<filter->GetName()<< std::endl; 
     1203                 (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut); 
     1204                 (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn); 
     1205                 (*CWorkflowGraph::mapFilters_ptr)[filterOut] = filter->GetName(); 
     1206                 (*CWorkflowGraph::mapFilters_ptr)[filterIn] = filters.second->GetName(); 
     1207                 std::cout<<"CField::buildFilterGraph (*CWorkflowGraph::mapFilters_ptr)["<<filterOut<<"] = "<<filter->GetName()<<std::endl; 
    12091208               } 
    12101209               filter = filters.second; 
     
    12341233            if (buildWorkflowGraph)  
    12351234            { 
    1236               //CWorkflowGraph::my_filename = file->name; 
    1237               if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1238               (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][instantDataFilter->getFilterId()] = instantDataFilter->GetName(); 
    1239               std::cout<<"CField::buildFilterGraph1.else filter["<<instantDataFilter->getFilterId()<< "] = "<<instantDataFilter->GetName()<< std::endl; 
     1235              if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     1236              (*CWorkflowGraph::mapFilters_ptr)[instantDataFilter->getFilterId()] = instantDataFilter->GetName(); 
     1237              std::cout<<"CField::buildFilterGraph2 (*CWorkflowGraph::mapFilters_ptr)["<<instantDataFilter->getFilterId()<<"] = "<<instantDataFilter->GetName()<<std::endl; 
    12401238            }   
    12411239         } 
     
    12581256           if (buildWorkflowGraph) 
    12591257           { 
    1260              CWorkflowGraph::my_filename = file->name; 
    1261              if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1262              if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >; 
     1258             if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     1259             if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
    12631260             int filterOut = getTemporalDataFilter(gc, file->output_freq)->getFilterId(); 
    12641261             int filterIn = fileWriterFilter->getFilterId(); 
    1265              (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterOut); 
    1266              (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterIn); 
    1267              (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = "Temporal filter"; 
    1268              (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = fileWriterFilter->GetName(); 
    1269              std::cout<<"CField::buildFilterGraph2 filterIn["<<filterIn<< "] = "<<fileWriterFilter->GetName()<< std::endl; 
    1270              std::cout<<"CField::buildFilterGraph2 filterOut["<<filterOut<< "] = "<<"Temporal filter"<< std::endl; 
     1262             (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut); 
     1263             (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn); 
     1264             (*CWorkflowGraph::mapFilters_ptr)[filterOut] = "Temporal filter"; 
     1265             (*CWorkflowGraph::mapFilters_ptr)[filterIn] = fileWriterFilter->GetName(); 
    12711266           } 
    12721267         } 
     
    12761271   CATCH_DUMP_ATTR 
    12771272 
    1278    void CField::buildFilterGraph(CGarbageCollector& gc, bool enableOutput, StdString output_filename) 
    1279    TRY 
    1280    {      
    1281     CWorkflowGraph::my_filename = output_filename; 
    1282     if (!isReferenceSolvedAndTransformed) solveAllEnabledFieldsAndTransform(); 
    1283     if (!isGridChecked) checkGridOfEnabledFields(); 
    1284  
    1285      const bool detectMissingValues = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    1286      const bool buildWorkflowGraph = (!build_workflow_graph.isEmpty() && build_workflow_graph == true); 
    1287      const double defaultValue  = detectMissingValues ? default_value : (!default_value.isEmpty() ? default_value : 0.0); 
    1288  
    1289      CContext* context = CContext::getCurrent(); 
    1290      bool hasWriterServer = context->hasServer && !context->hasClient; 
    1291      bool hasIntermediateServer = context->hasServer && context->hasClient; 
    1292  
    1293      if (hasWriterServer) 
    1294      { 
    1295         if (!instantDataFilter) 
    1296           instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, false)); 
    1297  
    1298  
    1299        // If the field data is to be read by the client or/and written to a file 
    1300        if (enableOutput && !storeFilter && !fileWriterFilter) 
    1301        { 
    1302          if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 
    1303          { 
    1304            fileServerWriterFilter = std::shared_ptr<CFileServerWriterFilter>(new CFileServerWriterFilter(gc, this)); 
    1305            instantDataFilter->connectOutput(fileServerWriterFilter, 0); 
    1306          } 
    1307        } 
    1308      } 
    1309      else if (hasIntermediateServer) 
    1310      { 
    1311        if (!instantDataFilter) 
    1312          instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, false)); 
    1313  
    1314              // If the field data is to be read by the client or/and written to a file 
    1315        if (enableOutput && !storeFilter && !fileWriterFilter) 
    1316        { 
    1317          if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 
    1318          { 
    1319            fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this)); 
    1320            instantDataFilter->connectOutput(fileWriterFilter, 0); 
    1321          } 
    1322        } 
    1323      } 
    1324      else 
    1325      { 
    1326        // Start by building a filter which can provide the field's instant data 
    1327        if (!instantDataFilter) 
    1328        { 
    1329          // Check if we have an expression to parse 
    1330          if (hasExpression()) 
    1331          { 
    1332            boost::scoped_ptr<IFilterExprNode> expr(parseExpr(getExpression() + '\0')); 
    1333            std::shared_ptr<COutputPin> filter = expr->reduce(gc, *this); 
    1334  
    1335            // Check if a spatial transformation is needed 
    1336            if (!field_ref.isEmpty()) 
    1337            { 
    1338              CField* fieldRef = CField::get(field_ref); 
    1339              fieldRef->build_workflow_graph.setValue(buildWorkflowGraph); 
    1340              CGrid* gridRef = fieldRef->grid; 
    1341  
    1342              if (grid && grid != gridRef && grid->hasTransform()) 
    1343              { 
    1344                std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters = CSpatialTransformFilter::buildFilterGraph(gc, gridRef, grid, 
    1345                                                                                          detectMissingValues, defaultValue, buildWorkflowGraph); 
    1346  
    1347                filter->connectOutput(filters.first, 0); 
    1348  
    1349                if (buildWorkflowGraph) 
    1350                {  
    1351                  CWorkflowGraph::my_filename = output_filename; 
    1352                  if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1353                  if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >; 
    1354                  int filterOut = filter->getFilterId(); 
    1355                  int filterIn = (std::static_pointer_cast<COutputPin>(filters.second))->getFilterId(); 
    1356                  (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterOut); 
    1357                  (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterIn); 
    1358                  (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = filter->GetName(); 
    1359                  (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = filters.second->GetName(); 
    1360                  std::cout<<"***CField::buildFilterGraph1 filterIn["<<filterIn<< "] = "<<filters.second->GetName()<< std::endl; 
    1361                  std::cout<<"***CField::buildFilterGraph1 filterOut["<<filterOut<< "] = "<<filter->GetName()<< std::endl; 
    1362                } 
    1363                filter = filters.second; 
    1364              } 
    1365            } 
    1366  
    1367            instantDataFilter = filter; 
    1368          } 
    1369          // Check if we have a reference on another field 
    1370          else if (!field_ref.isEmpty()) 
    1371          { 
    1372            CField::get(field_ref)->build_workflow_graph.setValue(buildWorkflowGraph); 
    1373            //instantDataFilter = getFieldReference2(gc, output_filename); 
    1374            instantDataFilter = getFieldReference(gc, output_filename); 
    1375          } 
    1376          // Check if the data is to be read from a file 
    1377          else if (file && !file->mode.isEmpty() && file->mode == CFile::mode_attr::read) 
    1378          { 
    1379            checkTimeAttributes(); 
    1380            instantDataFilter = serverSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, true, false, freq_offset, true, 
    1381                                                                                                        detectMissingValues, defaultValue, buildWorkflowGraph)); 
    1382          } 
    1383          else // The data might be passed from the model 
    1384          { 
    1385             if (check_if_active.isEmpty()) check_if_active = false;  
    1386             instantDataFilter = clientSourceFilter = std::shared_ptr<CSourceFilter>(new CSourceFilter(gc, grid, false, true, NoneDu, false, 
    1387                                                                                                       detectMissingValues, defaultValue, buildWorkflowGraph)); 
    1388             if (buildWorkflowGraph)  
    1389             { 
    1390               CWorkflowGraph::my_filename = output_filename;//CWorkflowGraph::my_filename = file->name; 
    1391               printf("*** *** my_filename = %s\n", CWorkflowGraph::my_filename.c_str()); 
    1392               if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1393               (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][instantDataFilter->getFilterId()] = instantDataFilter->GetName(); 
    1394               std::cout<<"***CField::buildFilterGraph1.else filter["<<instantDataFilter->getFilterId()<< "] = "<<instantDataFilter->GetName()<< std::endl; 
    1395             }   
    1396          } 
    1397        } 
    1398  
    1399        // If the field data is to be read by the client or/and written to a file 
    1400        if (enableOutput && !storeFilter && !fileWriterFilter) 
    1401        { 
    1402          if (!read_access.isEmpty() && read_access) 
    1403          { 
    1404            storeFilter = std::shared_ptr<CStoreFilter>(new CStoreFilter(gc, CContext::getCurrent(), grid, 
    1405                                                                           detectMissingValues, defaultValue)); 
    1406            instantDataFilter->connectOutput(storeFilter, 0); 
    1407          } 
    1408  
    1409          if (file && (file->mode.isEmpty() || file->mode == CFile::mode_attr::write)) 
    1410          { 
    1411            fileWriterFilter = std::shared_ptr<CFileWriterFilter>(new CFileWriterFilter(gc, this, buildWorkflowGraph)); 
    1412            getTemporalDataFilter(gc, file->output_freq)->connectOutput(fileWriterFilter, 0); 
    1413            if (buildWorkflowGraph) 
    1414            { 
    1415              CWorkflowGraph::my_filename = output_filename;//CWorkflowGraph::my_filename = file->name; 
    1416              if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1417              if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >; 
    1418              int filterOut = getTemporalDataFilter(gc, file->output_freq)->getFilterId(); 
    1419              int filterIn = fileWriterFilter->getFilterId(); 
    1420              (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterOut); 
    1421              (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterIn); 
    1422              (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = "Temporal filter"; 
    1423              (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = fileWriterFilter->GetName(); 
    1424              std::cout<<"***CField::buildFilterGraph2 filterIn["<<filterIn<< "] = "<<fileWriterFilter->GetName()<< std::endl; 
    1425              std::cout<<"***CField::buildFilterGraph2 filterOut["<<filterOut<< "] = "<<"Temporal filter"<< std::endl; 
    1426            } 
    1427          } 
    1428        } 
    1429      } 
    1430    } 
    1431    CATCH_DUMP_ATTR 
    14321273   /*! 
    14331274    * Returns the filter needed to handle the field reference. 
     
    14651306     if (buildWorkflowGraph) 
    14661307     { 
    1467        CWorkflowGraph::my_filename = file->name; 
    1468        if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map<StdString, std::unordered_map <int, StdString> >; 
    1469        if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >;  
     1308       if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     1309       if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
    14701310       int filterOut = fieldRef->instantDataFilter->getFilterId(); 
    14711311       int filterIn = (std::static_pointer_cast<COutputPin>(filters.first))->getFilterId(); 
    1472        (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][fieldRef->getOId()].push_back(filterOut); 
    1473        (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][fieldRef->getOId()].push_back(filterIn); 
    1474        (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = fieldRef->getInstantDataFilter()->GetName(); 
    1475        (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = filters.first->GetName(); 
    1476        std::cout<<"CField::getFieldReference filterIn["<<filterIn<< "] = "<<filters.first->GetName()<< std::endl; 
    1477        std::cout<<"CField::getFieldReference filterOut["<<filterOut<< "] = "<<fieldRef->getInstantDataFilter()->GetName()<< std::endl; 
     1312       (*CWorkflowGraph::mapFieldToFilters_ptr)[fieldRef->getOId()].push_back(filterOut); 
     1313       (*CWorkflowGraph::mapFieldToFilters_ptr)[fieldRef->getOId()].push_back(filterIn); 
     1314       (*CWorkflowGraph::mapFilters_ptr)[filterOut] = fieldRef->getInstantDataFilter()->GetName(); 
     1315       (*CWorkflowGraph::mapFilters_ptr)[filterIn] = filters.first->GetName(); 
     1316       std::cout<<"CField::getFieldReference (*CWorkflowGraph::mapFilters_ptr)["<<filterOut<<"] = "<<fieldRef->getInstantDataFilter()->GetName()<<std::endl; 
    14781317     } 
    14791318     return filters.second; 
    14801319   } 
    14811320   CATCH_DUMP_ATTR 
    1482    
    1483    std::shared_ptr<COutputPin> CField::getFieldReference(CGarbageCollector& gc, StdString output_filename) 
    1484    TRY 
    1485    { 
    1486      CWorkflowGraph::my_filename = output_filename; 
    1487      if (instantDataFilter || field_ref.isEmpty()) 
    1488        ERROR("COutputPin* CField::getFieldReference(CGarbageCollector& gc)", 
    1489              "Impossible to get the field reference for a field which has already been parsed or which does not have a field_ref."); 
    1490  
    1491      CField* fieldRef = CField::get(field_ref); 
    1492      //fieldRef->buildFilterGraph2(gc, false, output_filename); 
    1493      fieldRef->buildFilterGraph(gc, false, output_filename); 
    1494      bool buildWorkflowGraph = (!build_workflow_graph.isEmpty() && build_workflow_graph == true); 
    1495  
    1496      std::pair<std::shared_ptr<CFilter>, std::shared_ptr<CFilter> > filters; 
    1497      // Check if a spatial transformation is needed 
    1498      if (grid && grid != fieldRef->grid && grid->hasTransform()) 
    1499      {        
    1500        bool hasMissingValue = (!detect_missing_value.isEmpty() && !default_value.isEmpty() && detect_missing_value == true); 
    1501        double defaultValue  = hasMissingValue ? default_value : (!default_value.isEmpty() ? default_value : 0.0);                                 
    1502        filters = CSpatialTransformFilter::buildFilterGraph(gc, fieldRef->grid, grid, hasMissingValue, defaultValue, buildWorkflowGraph); 
    1503      } 
    1504      else 
    1505      { 
    1506        filters.first = filters.second = std::shared_ptr<CFilter>(new CPassThroughFilter(gc, buildWorkflowGraph)); 
    1507      } 
    1508  
    1509      fieldRef->getInstantDataFilter()->connectOutput(filters.first, 0); 
    1510  
    1511      if (buildWorkflowGraph) 
    1512      { 
    1513        CWorkflowGraph::my_filename = output_filename; 
    1514        if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map<StdString, std::unordered_map <int, StdString> >; 
    1515        if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >;  
    1516        int filterOut = fieldRef->instantDataFilter->getFilterId(); 
    1517        int filterIn = (std::static_pointer_cast<COutputPin>(filters.first))->getFilterId(); 
    1518        (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][fieldRef->getOId()].push_back(filterOut); 
    1519        (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][fieldRef->getOId()].push_back(filterIn); 
    1520        (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = fieldRef->getInstantDataFilter()->GetName(); 
    1521        (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = filters.first->GetName(); 
    1522        std::cout<<"CField::getFieldReference filterIn["<<filterIn<< "] = "<<filters.first->GetName()<< std::endl; 
    1523        std::cout<<"CField::getFieldReference filterOut["<<filterOut<< "] = "<<fieldRef->getInstantDataFilter()->GetName()<< std::endl; 
    1524      } 
    1525      return filters.second; 
    1526    } 
    1527    CATCH_DUMP_ATTR 
     1321 
    15281322   /*! 
    15291323    * Returns the filter needed to handle a self reference in the field's expression. 
     
    16131407       if (buildWorkflowGraph) 
    16141408       { 
    1615          if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map< StdString, std::unordered_map <int, StdString> >; 
    1616          if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map<StdString, std::unordered_map <StdString, vector <int> > >; 
     1409         if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     1410         if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
    16171411         int filterOut = instantDataFilter->getFilterId(); 
    16181412         int filterIn = (std::static_pointer_cast<COutputPin>(temporalFilter))->getFilterId(); 
    1619          (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterOut); 
    1620          (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterIn); 
    1621          (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = getInstantDataFilter()->GetName(); 
    1622          (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = temporalFilter->GetName(); 
    1623          std::cout<<"CField::getTemporalDataFilter filterIn["<<filterIn<< "] = "<<temporalFilter->GetName()<< std::endl; 
    1624          std::cout<<"CField::getTemporalDataFilter filterOut["<<filterOut<< "] = "<<getInstantDataFilter()->GetName()<< std::endl; 
     1413         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut); 
     1414         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn); 
     1415         (*CWorkflowGraph::mapFilters_ptr)[filterOut] = getInstantDataFilter()->GetName(); 
     1416         (*CWorkflowGraph::mapFilters_ptr)[filterIn] = temporalFilter->GetName(); 
     1417         std::cout<<"CField::getTemporalDataFilter (*CWorkflowGraph::mapFilters_ptr)["<<filterOut<<"] = "<<getInstantDataFilter()->GetName()<<std::endl; 
    16251418       } 
    16261419 
     
    16691462 
    16701463       { 
    1671          if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map<StdString, std::unordered_map <int, StdString> >; 
    1672          if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map< StdString, std::unordered_map <StdString, vector <int> > >; 
     1464         if(CWorkflowGraph::mapFilters_ptr==0) CWorkflowGraph::mapFilters_ptr = new std::unordered_map <int, StdString>; 
     1465         if(CWorkflowGraph::mapFieldToFilters_ptr==0) CWorkflowGraph::mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int> >; 
    16731466         int filterOut = selfReferenceFilter->getFilterId(); 
    16741467         int filterIn = (std::static_pointer_cast<COutputPin>(temporalFilter))->getFilterId(); 
    1675          (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterOut); 
    1676          (*CWorkflowGraph::mapFieldToFilters_ptr)[CWorkflowGraph::my_filename][this->getOId()].push_back(filterIn); 
    1677          (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterOut] = selfReferenceFilter->GetName(); 
    1678          (*CWorkflowGraph::mapFilters_ptr)[CWorkflowGraph::my_filename][filterIn] = temporalFilter->GetName(); 
    1679          std::cout<<"CField::getSelfTemporalDataFilter filterIn["<<filterIn<< "] = "<<temporalFilter->GetName()<< std::endl; 
    1680          std::cout<<"CField::getSelfTemporalDataFilter filterOut["<<filterOut<< "] = "<<selfReferenceFilter->GetName()<< std::endl; 
     1468         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterOut); 
     1469         (*CWorkflowGraph::mapFieldToFilters_ptr)[this->getOId()].push_back(filterIn); 
     1470         (*CWorkflowGraph::mapFilters_ptr)[filterOut] = selfReferenceFilter->GetName(); 
     1471         (*CWorkflowGraph::mapFilters_ptr)[filterIn] = temporalFilter->GetName(); 
     1472         std::cout<<"CField::getSelfTemporalDataFilter (*CWorkflowGraph::mapFilters_ptr)["<<filterOut<<"] = "<<selfReferenceFilter->GetName()<<std::endl; 
    16811473       } 
    16821474 
     
    22051997   DEFINE_REF_FUNC(Field,field) 
    22061998} // namespace xios 
    2207  
Note: See TracChangeset for help on using the changeset viewer.