Changeset 1670 for XIOS/dev/dev_trunk_omp/src/workflow_graph.cpp
- Timestamp:
- 05/29/19 13:58:48 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_trunk_omp/src/workflow_graph.cpp
r1669 r1670 4 4 { 5 5 6 std::unordered_map < StdString, vector <int >> *CWorkflowGraph::mapFieldToFilters_ptr = 0;6 std::unordered_map < StdString, std::unordered_map <StdString, vector <int> > > *CWorkflowGraph::mapFieldToFilters_ptr = 0; 7 7 #pragma omp threadprivate(CWorkflowGraph::mapFieldToFilters_ptr) 8 8 9 std::unordered_map < int, StdString> *CWorkflowGraph::mapFilters_ptr = 0;9 std::unordered_map < StdString, std::unordered_map <int, StdString> > *CWorkflowGraph::mapFilters_ptr = 0; 10 10 #pragma omp threadprivate(CWorkflowGraph::mapFilters_ptr) 11 11 12 std::unordered_map < int,vector<Time>> *CWorkflowGraph::mapFilterTimestamps_ptr = 0;12 std::unordered_map < StdString, std::unordered_map <int, vector<Time> > > *CWorkflowGraph::mapFilterTimestamps_ptr = 0; 13 13 #pragma omp threadprivate(CWorkflowGraph::mapFilterTimestamps_ptr) 14 14 15 s et<Time> *CWorkflowGraph::timestamps_ptr = 0;15 std::unordered_map< StdString, set<Time> > *CWorkflowGraph::timestamps_ptr = 0; 16 16 #pragma omp threadprivate(CWorkflowGraph::timestamps_ptr) 17 17 … … 19 19 vector <StdString> CWorkflowGraph::fields; 20 20 vector <pair<int, int> > CWorkflowGraph::fieldsToFilters; 21 22 StdString CWorkflowGraph::my_filename = "my_filename"; 23 #pragma omp threadprivate(CWorkflowGraph::my_filename) 24 25 std::map< StdString, int> *InvalidableObject::count_ptr=0; 26 #pragma omp threadprivate(InvalidableObject::count_ptr) 21 27 22 28 CWorkflowGraph::CWorkflowGraph() … … 26 32 * Reorganize information collected by XIOS for visualization. 27 33 */ 34 /* 35 28 36 void CWorkflowGraph::buildStaticWorkflow() 29 37 TRY … … 50 58 } 51 59 CATCH 60 */ 61 62 void CWorkflowGraph::buildStaticWorkflow_forfile(StdString filename) 63 TRY 64 { 65 // Create a list of filters (graph nodes) 66 //if(mapFilters_ptr==0) mapFilters_ptr = new std::unordered_map <int, StdString>; 67 //if(mapFieldToFilters_ptr==0) mapFieldToFilters_ptr = new std::unordered_map <StdString, vector <int > >; 68 size_t filterIdx = 0; 69 filters.resize((*mapFilters_ptr)[filename].size()); 70 fieldsToFilters.clear(); 71 fields.clear(); 72 73 74 for (std::unordered_map <int, StdString>::iterator it=(*mapFilters_ptr)[filename].begin(); it != (*mapFilters_ptr)[filename].end(); it++) 75 { 76 filters[it->first]=it->second; 77 } 78 79 // Create a list of fields and their filter connectivity (graph edges and edge-to-node connectivity) 80 for (std::unordered_map <StdString, vector <int > >::iterator it=(*mapFieldToFilters_ptr)[filename].begin(); it != (*mapFieldToFilters_ptr)[filename].end(); it++) 81 { 82 for (size_t i = 0; i < (it->second.size() - 1); i+=2) 83 { 84 fieldsToFilters.push_back(make_pair(it->second[i],it->second[i+1])); 85 fields.push_back(it->first); 86 } 87 } 88 } 89 CATCH 52 90 53 91 … … 58 96 for (auto it=mapFilters_ptr->begin(); it != mapFilters_ptr->end(); it++) 59 97 { 60 std::cout<<"mapFilters_ptr["<<it->first<<"]="<<it->second<<std::endl; 98 for (auto it2=mapFilters_ptr->at(it->first).begin(); it2 != mapFilters_ptr->at(it->first).end(); it2++) 99 std::cout<<"mapFilters_ptr["<<it->first<<"]="<<it2->first<<" "<<it2->second<<std::endl; 61 100 } 62 101 else std::cout<<"mapFilters_ptr empty"<<std::endl; … … 65 104 for (auto it=mapFieldToFilters_ptr->begin(); it != mapFieldToFilters_ptr->end(); it++) 66 105 { 67 for ( size_t i = 0; i < it->second.size(); i++)106 for (auto it2=mapFieldToFilters_ptr->at(it->first).begin(); it2 != mapFieldToFilters_ptr->at(it->first).end(); it2++) 68 107 { 69 std::cout<<"mapFieldToFilters_ptr["<<it->first<<"]["<<i<<"] = "<<it->second[i]<<std::endl; 108 for (size_t i = 0; i < it2->second.size(); i++) 109 std::cout<<"mapFieldToFilters_ptr["<<it->first<<"]["<<it2->first<<"]["<<i<<"] = "<<it2->second[i]<<std::endl; 70 110 } 71 111 } 72 112 else std::cout<<"mapFieldToFilters_ptr empty"<<mapFieldToFilters_ptr<<std::endl; 73 113 /* 74 114 if(mapFilterTimestamps_ptr!=0 && !mapFilterTimestamps_ptr->empty()) 75 115 for (auto it=mapFilterTimestamps_ptr->begin(); it != mapFilterTimestamps_ptr->end(); it++) … … 88 128 } 89 129 else std::cout<<"timestamps_ptr empty"<<std::endl; 90 130 */ 91 131 } 92 132 CATCH 93 133 94 134 } 135
Note: See TracChangeset
for help on using the changeset viewer.