Graybat  1.1
Graph Approach for Highly Generic Communication Schemes Based on Adaptive Topologies
Traits.hpp
1 #pragma once
2 
3 // STL
4 #include <utility> /* std::pair */
5 #include <vector>
6 
7 namespace graybat {
8 
9  namespace graphPolicy {
10 
11  namespace traits {
12 
13 
14  } // namespace traits
15 
16  /***********************************************************************
17  * Iterators
18  **********************************************************************/
19  template <typename T_GraphPolicy>
20  using InEdgeIter = typename T_GraphPolicy::InEdgeIter;
21 
22  template <typename T_GraphPolicy>
23  using OutEdgeIter = typename T_GraphPolicy::OutEdgeIter;
24 
25  template <typename T_GraphPolicy>
26  using AdjacentVertexIter = typename T_GraphPolicy::AdjacentVertexIter;
27 
28  template <typename T_GraphPolicy>
29  using AllVertexIter = typename T_GraphPolicy::AllVertexIter;
30 
31  /***********************************************************************
32  * Properties
33  **********************************************************************/
34  template <typename T_GraphPolicy>
35  using VertexProperty = typename T_GraphPolicy::VertexProperty;
36 
37  template <typename T_GraphPolicy>
38  using EdgeProperty = typename T_GraphPolicy::EdgeProperty;
39 
40  /***********************************************************************
41  * Constants Types
42  **********************************************************************/
43  using VertexID = size_t;
44  using EdgeID = size_t;
45  using GraphID = size_t;
46 
47  template <typename T_GraphPolicy>
48  using VertexDescription = std::pair<VertexID, VertexProperty<T_GraphPolicy> >;
49 
50  template <typename T_GraphPolicy>
51  using EdgeDescription = std::pair< std::pair<
52  VertexID
53  ,VertexID >
54  ,EdgeProperty<T_GraphPolicy> >;
55 
56  template <typename T_GraphPolicy>
57  using GraphDescription = std::pair<
58  std::vector<VertexDescription<T_GraphPolicy> >,
59  std::vector<EdgeDescription<T_GraphPolicy> >
60  >;
61 
62 
63  } // namespace graphPolicy
64 
65 } // namespace graybat
Definition: BiStar.hpp:8