Changeset 2026
- Timestamp:
- 02/01/21 11:54:16 (3 years ago)
- Location:
- XIOS/dev/dev_trunk_graph/src
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_graph/src/attribute_enum_impl.hpp
r2019 r2026 10 10 namespace xios 11 11 { 12 /// ////////////////////// D finitions ////////////////////// ///12 /// ////////////////////// Definitions ////////////////////// /// 13 13 template <class T> 14 14 CAttributeEnum<T>::CAttributeEnum(const StdString & id) -
XIOS/dev/dev_trunk_graph/src/filter/pass_through_filter.cpp
r2023 r2026 19 19 if(this->graphEnabled) 20 20 { 21 if(data[0]->graphPackage ->currentField->getId() == this->graphPackage->inFields[0]->getId())21 if(data[0]->graphPackage && data[0]->graphPackage->currentField->getId() == this->graphPackage->inFields[0]->getId()) 22 22 { 23 23 std::cout<<"PASS THROUGH FILTER OMITTED "<<this<<std::endl; … … 31 31 data[0]->graphPackage = new CGraphDataPackage; 32 32 data[0]->graphPackage->fromFilter = -1; 33 data[0]->graphPackage->currentField = this->graphPackage->inFields[0]; 33 34 } 34 35 … … 52 53 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 53 54 54 55 55 data[0]->graphPackage->fromFilter = this->graphPackage->filterId; 56 56 -
XIOS/dev/dev_trunk_graph/src/filter/transform_filter.cpp
r2023 r2026 22 22 if (packet->status == CDataPacket::NO_ERROR) 23 23 { 24 cout<<"transformeFilter = "<<this<<" and graphEnabled = "<<this->graphEnabled<<std::endl;25 24 buildWorkflowGraph(data, packet, algorithm_); 26 25 … … 50 49 packet->graphPackage->current_filter_name = data[0]->graphPackage->current_filter_name; 51 50 packet->graphPackage->contextId = data[0]->graphPackage->contextId; 52 packet->graphPackage->currentField = data[0]->graphPackage->currentField;//this->graphPackage->inFields[0];53 51 54 CWorkflowGraph::addNode("Spatial transform filter "+algorithm->getAlgoName(), 4, false, 1, packet); 55 CWorkflowGraph::addEdge(packet->graphPackage->fromFilter, this->graphPackage->filterId, packet); 56 57 58 59 packet->graphPackage->fromFilter = this->graphPackage->filterId; 60 packet->graphPackage->currentField = this->graphPackage->inFields[0]; 61 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 52 int tmp_from = packet->graphPackage->fromFilter; 53 if(this->graphPackage->show) 54 { 55 packet->graphPackage->currentField = data[0]->graphPackage->currentField->getDirectFieldReference();//this->graphPackage->inFields[0]; 56 CWorkflowGraph::addNode("Spatial transform filter "+algorithm->getAlgoName(), 4, false, 1, packet); 57 CWorkflowGraph::addEdge(packet->graphPackage->fromFilter, this->graphPackage->filterId, packet); 58 packet->graphPackage->fromFilter = this->graphPackage->filterId; 59 packet->graphPackage->currentField = this->graphPackage->inFields[0]; 60 std::rotate(this->graphPackage->inFields.begin(), this->graphPackage->inFields.begin() + 1, this->graphPackage->inFields.end()); 61 } 62 else 63 { 64 packet->graphPackage->currentField = this->graphPackage->inFields[0]; 65 if(CXios::isClient) CWorkflowGraph::vectorOfNodes_->at(tmp_from).filter_name += algorithm->getAlgoName(); 66 else CWorkflowGraph::vectorOfNodes_srv_->at(tmp_from).filter_name += algorithm->getAlgoName(); 67 68 } 62 69 } 63 70 } -
XIOS/dev/dev_trunk_graph/src/graph_package.hpp
r2021 r2026 11 11 std::vector< CField* > inFields; 12 12 StdString contextId; 13 bool show; 14 15 CGraphPackage(): show(true) {} 13 16 }; 14 17 struct CGraphDataPackage … … 20 23 int distanceFromStart=-1; 21 24 StdString contextId; 25 bool show; 22 26 23 CGraphDataPackage(): fromFilter(-1) {}27 CGraphDataPackage(): fromFilter(-1), show(true) {} 24 28 }; 25 29 } // namespace xios -
XIOS/dev/dev_trunk_graph/src/node/field.cpp
r2023 r2026 554 554 { 555 555 inputFilter = std::shared_ptr<CPassThroughFilter>(new CPassThroughFilter(gc)); 556 if(buildGraph_)556 /*if(buildGraph_) 557 557 { 558 558 std::cout<<"============== field "<<this->getId()<<" calls a pass through filter ============== "<<inputFilter<<" ***** "<<CXios::isClient<<std::endl; … … 560 560 inputFilter->graphPackage = new CGraphPackage; 561 561 inputFilter->graphPackage->inFields.push_back(this); 562 } 562 }*/ 563 563 } 564 564 … … 570 570 { 571 571 (*fieldRef).build_workflow_graph.set(build_workflow_graph); 572 inputFilter->label_field_id = fieldRef->getId();572 //inputFilter->label_field_id = fieldRef->getId(); 573 573 } 574 574 else … … 642 642 inputFilter->graphPackage = new CGraphPackage; 643 643 inputFilter->graphPackage->inFields.push_back(this); 644 inputFilter->label_field_id = getDirectFieldReference()->getId(); 644 645 } 645 646 } -
XIOS/dev/dev_trunk_graph/src/node/grid.cpp
r2023 r2026 1694 1694 TRY 1695 1695 { 1696 static bool transformationGoing = false; 1696 1697 registerAlgorithmTransformation() ; // needed to enable self-registration of the transformations 1697 1698 // big mystery why it doesn't work witout that... … … 1700 1701 std::shared_ptr<CFilter> inputFilter = std::shared_ptr<CPassThroughFilter>(new CPassThroughFilter(gc)); 1701 1702 std::shared_ptr<CFilter> outputFilter = inputFilter ; 1702 /*cout<<"***************CGrid::buildTransformationGraph***************"<<field->getId()<<" CGrid::buildTransformationGraph"<<endl;1703 inputFilter->graphEnabled = true;1703 cout<<"***************CGrid::buildTransformationGraph Pass through filter ***************"<<transformationGoing<<field->getId()<<endl; 1704 /*inputFilter->graphEnabled = true; 1704 1705 inputFilter->graphPackage = new CGraphPackage; 1705 1706 inputFilter->graphPackage->inFields.push_back(field); … … 1995 1996 transformFilter->graphPackage = new CGraphPackage; 1996 1997 transformFilter->graphPackage->inFields.push_back(field); 1998 transformFilter->graphPackage->show = !transformationGoing; 1997 1999 } 1998 2000 … … 2012 2014 if (hasRemainTransform) 2013 2015 { 2016 transformationGoing = true; 2014 2017 gridSrc=newGrid ; 2015 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > filters = this->buildTransformationGraph(gc, isSource, gridSrc, detectMissingValues, defaultValue, newGrid) ; 2018 CField *field_bis = field; 2019 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > filters = this->buildTransformationGraph(gc, isSource, gridSrc, detectMissingValues, defaultValue, newGrid, graphEnabled, field_bis) ; 2016 2020 outputFilter->connectOutput(filters.first,0) ; 2017 2021 outputFilter=filters.second ; 2018 2022 } 2023 transformationGoing = false; 2019 2024 } 2020 2025 -
XIOS/dev/dev_trunk_graph/src/node/grid.hpp
r2021 r2026 215 215 public: 216 216 pair<shared_ptr<CFilter>, shared_ptr<CFilter> > buildTransformationGraph(CGarbageCollector& gc, bool isSource, CGrid* gridSrc, double detectMissingValues, 217 double defaultValue, CGrid*& newGrid, bool graphEnabled=false, CField* field= nullptr) ;217 double defaultValue, CGrid*& newGrid, bool graphEnabled=false, CField* field=0) ; 218 218 private: 219 219 CGridAlgorithm* gridAlgorithm_ = nullptr ; -
XIOS/dev/dev_trunk_graph/src/transformation/algorithm_transformation_transfer.hpp
r2021 r2026 17 17 virtual void apply(int dimBefore, int dimAfter, const CArray<double,1>& dataIn, CArray<double,1>& dataOut); 18 18 virtual void computeRecvElement(CLocalView* srcView, CLocalView* dstView) ; 19 virtual StdString getAlgoName() {return " CAlgorithm transformation Transfer";}19 virtual StdString getAlgoName() {return "\\nCAlgorithm transformation Transfer";} 20 20 21 21 protected: -
XIOS/dev/dev_trunk_graph/src/transformation/domain_algorithm/domain_algorithm_expand.hpp
r2019 r2026 28 28 29 29 static bool registerTrans(); 30 virtual StdString getAlgoName() {return "\\nexpand_domain";} 30 31 31 32 protected: -
XIOS/dev/dev_trunk_graph/src/workflow_graph.cpp
r2019 r2026 5 5 { 6 6 7 std::unordered_map <int, graph_info_box_node> *CWorkflowGraph::mapFilters_ptr_with_info = 0; 8 9 std::unordered_map <int, graph_info_box_edge > *CWorkflowGraph::mapFieldToFilters_ptr_with_info = 0; 10 11 std::unordered_map <size_t, int> *CWorkflowGraph::mapHashFilterID_ptr = 0; 12 13 std::unordered_map <StdString, int > *CWorkflowGraph::mapContext_ptr = 0; 7 14 8 15 9 … … 26 20 bool CWorkflowGraph::serverGraphBuilt = false; 27 21 28 int CWorkflowGraph::filterIdGenerator = 0; 29 int CWorkflowGraph::edgeIdGenerator = 0; 30 31 32 vector <StdString> CWorkflowGraph::filters; 33 vector <StdString> CWorkflowGraph::fields; 34 vector <pair<int, int> > CWorkflowGraph::fieldsToFilters; 22 35 23 36 24 bool CWorkflowGraph::build_begin = false; … … 43 31 //****************************************************** 44 32 45 33 void CWorkflowGraph::outputWorkflowGraph_client_stdout() 34 { 35 std::cout<<"\n\nbuild workflow graph ..."<<std::endl; 36 for(int i=0; i<vectorOfNodes_->size(); i++) 37 { 38 std::cout<<"Node["<<i<<"] is "<<(*vectorOfNodes_)[i].filter_name<<std::endl; 39 } 40 41 for(int i=0; i<vectorOfEdges_->size(); i++) 42 { 43 std::cout<<"Edge["<<i<<"] from "<<(*vectorOfEdges_)[i].from<<" to "<<(*vectorOfEdges_)[i].to<<std::endl; 44 } 45 std::cout<<"\nend workflow graph ...\n\n"<<std::endl; 46 } 47 48 void CWorkflowGraph::outputWorkflowGraph_server_stdout() 49 { 50 std::cout<<"\n\nServer side : build workflow graph ..."<<std::endl; 51 for(int i=0; i<vectorOfNodes_srv_->size(); i++) 52 { 53 std::cout<<"Node["<<i<<"] is "<<(*vectorOfNodes_srv_)[i].filter_name<<std::endl; 54 } 55 56 for(int i=0; i<vectorOfEdges_srv_->size(); i++) 57 { 58 std::cout<<"Edge["<<i<<"] from "<<(*vectorOfEdges_srv_)[i].from<<" to "<<(*vectorOfEdges_srv_)[i].to<<std::endl; 59 } 60 std::cout<<"\nend workflow graph ...\n\n"<<std::endl; 61 } 62 46 63 47 64 void CWorkflowGraph::drawWorkFlowGraph_client() … … 50 67 if(vectorOfNodes_ && vectorOfEdges_) 51 68 { 52 std::cout<<"\n\nbuild workflow graph ..."<<std::endl; 53 for(int i=0; i<vectorOfNodes_->size(); i++) 54 { 55 std::cout<<"Node["<<i<<"] is "<<(*vectorOfNodes_)[i].filter_name<<std::endl; 56 } 57 58 for(int i=0; i<vectorOfEdges_->size(); i++) 59 { 60 std::cout<<"Edge["<<i<<"] from "<<(*vectorOfEdges_)[i].from<<" to "<<(*vectorOfEdges_)[i].to<<std::endl; 61 } 62 std::cout<<"\nend workflow graph ...\n\n"<<std::endl; 63 69 //outputWorkflowGraph_client_stdout(); 64 70 outputWorkflowGraph_client(); 65 71 } … … 74 80 if(vectorOfNodes_srv_ && vectorOfEdges_srv_) 75 81 { 76 std::cout<<"\n\nServer side : build workflow graph ..."<<std::endl; 77 for(int i=0; i<vectorOfNodes_srv_->size(); i++) 78 { 79 std::cout<<"Node["<<i<<"] is "<<(*vectorOfNodes_srv_)[i].filter_name<<std::endl; 80 } 81 82 for(int i=0; i<vectorOfEdges_srv_->size(); i++) 83 { 84 std::cout<<"Edge["<<i<<"] from "<<(*vectorOfEdges_srv_)[i].from<<" to "<<(*vectorOfEdges_srv_)[i].to<<std::endl; 85 } 86 std::cout<<"\nend workflow graph ...\n\n"<<std::endl; 87 82 //outputWorkflowGraph_server_stdout(); 88 83 outputWorkflowGraph_server(); 89 84 } … … 109 104 edge_obj.timestamp = packet->timestamp; 110 105 edge_obj.field = packet->graphPackage->currentField; 106 edge_obj.show = true; 111 107 for(int i=0; i<vectorOfContexts_->size(); i++) 112 108 { … … 135 131 edge_obj.timestamp = packet->timestamp; 136 132 edge_obj.field = packet->graphPackage->currentField; 133 edge_obj.show = true; 137 134 for(int i=0; i<vectorOfContexts_srv_->size(); i++) 138 135 { … … 276 273 outfiles[ctx] << "\"from\":"<<vectorOfEdges_->at(i).from<<","<<std::endl; 277 274 outfiles[ctx] << "\"to\":"<<vectorOfEdges_->at(i).to<<","<<std::endl; 278 outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_->at(i).field->getId()<<"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl; 275 if(vectorOfEdges_->at(i).show) outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_->at(i).field->getId()<<"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl; 276 else outfiles[ctx] << "\"label\":"<<"\"\\n"<<vectorOfEdges_->at(i).date<<"\","<<std::endl; 279 277 outfiles[ctx] << "\"context\":"<<"\""<<vectorOfEdges_->at(i).context_id<<"\","<<std::endl; 280 278 outfiles[ctx] << "\"attributes\":"<<"\""<<vectorOfEdges_->at(i).attributes<<"\","<<std::endl; … … 328 326 outfiles[ctx] << "\"from\":"<<vectorOfEdges_srv_->at(i).from<<","<<std::endl; 329 327 outfiles[ctx] << "\"to\":"<<vectorOfEdges_srv_->at(i).to<<","<<std::endl; 330 outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_srv_->at(i).field->getId()<<"\\n"<<vectorOfEdges_srv_->at(i).date<<"\","<<std::endl; 328 if(vectorOfEdges_srv_->at(i).show) outfiles[ctx] << "\"label\":"<<"\""<<vectorOfEdges_srv_->at(i).field->getId()<<"\\n"<<vectorOfEdges_srv_->at(i).date<<"\","<<std::endl; 329 else outfiles[ctx] << "\"label\":"<<"\"\\n"<<vectorOfEdges_srv_->at(i).date<<"\","<<std::endl; 331 330 outfiles[ctx] << "\"context\":"<<"\""<<vectorOfEdges_srv_->at(i).context_id<<"\","<<std::endl; 332 331 outfiles[ctx] << "\"attributes\":"<<"\""<<vectorOfEdges_srv_->at(i).attributes<<"\","<<std::endl; -
XIOS/dev/dev_trunk_graph/src/workflow_graph.hpp
r2023 r2026 13 13 { 14 14 class CField; 15 16 17 struct graph_info_box_node18 {19 20 StdString filter_name;21 int filter_class;22 bool filter_filled;23 int expected_entry_nb;24 CDate date;25 Time timestamp;26 StdString transform_type;27 StdString attributes;28 StdString field_id;29 bool inputs_complete;30 int filter_tag;31 int clusterID;32 int distance;33 StdString node_context_id;34 };35 36 struct graph_info_box_edge37 {38 int from;39 int to;40 StdString field_id;41 StdString field_name;42 StdString grid_id;43 CDate date;44 Time timestamp;45 CField *field;46 StdString attributes;47 StdString edge_context_id;48 };49 15 50 16 struct graph_node_object … … 67 33 int context; 68 34 StdString label_field_id; 35 bool show; 36 37 38 graph_node_object():show(true){} 39 69 40 }; 70 41 … … 83 54 StdString context_id; 84 55 int context; 56 bool show; 57 58 graph_edge_object():show(true){} 85 59 }; 86 60 … … 103 77 static std::vector<StdString> *vectorOfContexts_srv_; 104 78 79 // these variables are not yet used 105 80 static bool clientGraphBuilt; 106 81 static bool serverGraphBuilt; 82 static bool build_begin; 107 83 108 static int filterIdGenerator;109 static int edgeIdGenerator;110 84 111 85 static void drawWorkFlowGraph_client(); … … 115 89 static void addNode(StdString filterName, int filter_class, bool filter_filled, int entry_nb, CDataPacketPtr packet); 116 90 static void addEdge(int from, int to, CDataPacketPtr packet); 117 static int getNodeSize(); 91 92 // write to file the graph info 118 93 static void outputWorkflowGraph_client(); 119 94 static void outputWorkflowGraph_server(); 95 96 // output on screen the graph info 97 static void outputWorkflowGraph_client_stdout(); 98 static void outputWorkflowGraph_server_stdout(); 99 100 static int getNodeSize(); 120 101 121 102 122 static std::unordered_map <int, graph_info_box_node> *mapFilters_ptr_with_info;123 103 124 static std::unordered_map <int, graph_info_box_edge> *mapFieldToFilters_ptr_with_info;104 125 105 126 static std::unordered_map <size_t, int> *mapHashFilterID_ptr;127 128 static std::unordered_map <StdString, int> *mapContext_ptr;129 130 131 static bool build_begin;132 133 static void addNode2(int nodeID, StdString filterName, int filter_class, bool filter_filled, int entry_nb, CDataPacketPtr packet);134 static void addEdge2(int from, int to, CDataPacketPtr packet);135 static void allocNodeEdge();136 106 137 107 private:
Note: See TracChangeset
for help on using the changeset viewer.