GraphLab: Distributed Graph-Parallel API  2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dc_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 DISTRIBUTED_CONTROL_TYPES_HPP
25 #define DISTRIBUTED_CONTROL_TYPES_HPP
26 #include <inttypes.h>
27 #include <graphlab/serialization/iarchive.hpp>
28 namespace graphlab {
29  /// The type used for numbering processors \ingroup rpc
30  typedef uint16_t procid_t;
31 
32  /**
33  * \internal
34  * \ingroup rpc
35  * The underlying communication protocol
36  */
37  enum dc_comm_type {
38  TCP_COMM, ///< TCP/IP
39  SCTP_COMM ///< SCTP (limited support)
40  };
41 
42 
43  /**
44  * \internal
45  * \ingroup rpc
46  * A pointer that points directly into
47  * the middle of a deserialized buffer.
48  */
49  struct wild_pointer {
50  const void* ptr;
51 
52  void load(iarchive& iarc) {
53  assert(iarc.buf != NULL);
54  ptr = reinterpret_cast<const void*>(iarc.buf + iarc.off);
55  }
56  };
57 };
58 #include <graphlab/rpc/dc_packet_mask.hpp>
59 #endif
60