GraphLab: Distributed Graph-Parallel API  2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
graph_basic_types.hpp
1 /**
2  * Copyright (c) 2009 Carnegie Mellon University.
3  * All rights reserved.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing,
12  * software distributed under the License is distributed on an "AS
13  * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14  * express or implied. See the License for the specific language
15  * governing permissions and limitations under the License.
16  *
17  * For more about this software visit:
18  *
19  * http://www.graphlab.ml.cmu.edu
20  *
21  */
22 
23 
24 #ifndef GRAPHLAB_GRAPH_BASIC_TYPES
25 #define GRAPHLAB_GRAPH_BASIC_TYPES
26 
27 #include <stdint.h>
28 
29 namespace graphlab {
30 
31 
32 
33 
34 #ifdef USE_VID64
35  /// Identifier type of a vertex which is globally consistent. Guaranteed to be integral
36  typedef uint64_t vertex_id_type;
37 #else
38  /// Identifier type of a vertex which is globally consistent. Guaranteed to be integral
39  typedef uint32_t vertex_id_type;
40 #endif
41 
42  /// Identifier type of a vertex which is only locally consistent. Guaranteed to be integral
44 
45  /**
46  * Identifier type of an edge which is only locally
47  * consistent. Guaranteed to be integral and consecutive.
48  */
50 
51  /**
52  * \brief The set of edges that are traversed during gather and scatter
53  * operations.
54  */
56  /**
57  * \brief No edges implies that no edges are processed during the
58  * corresponding gather or scatter phase, essentially skipping
59  * that phase.
60  */
61  NO_EDGES = 0,
62  /**
63  * \brief In edges implies that only whose target is the center
64  * vertex are processed during gather or scatter.
65  */
66  IN_EDGES = 1,
67  /**
68  * \brief Out edges implies that only whose source is the center
69  * vertex are processed during gather or scatter.
70  */
71  OUT_EDGES = 2 ,
72  /**
73  * \brief All edges implies that all adges adjacent to a the
74  * center vertex are processed on gather or scatter. Note that
75  * some neighbors may be encountered twice if there is both an in
76  * and out edge to that neighbor.
77  */
78  ALL_EDGES = 3};
79 } // end of namespace graphlab
80 
81 #endif