1 /*
2  * Copyright (C) 2009 Codership Oy <info@codership.com>
3  *
4  * $Id$
5  */
6 
7 /*!
8  * @file order.hpp
9  *
10  * @brief Message order type enumeration.
11  */
12 
13 #ifndef GCOMM_ORDER_HPP
14 #define GCOMM_ORDER_HPP
15 
16 namespace gcomm
17 {
18     /*!
19      * @brief Message order type enumeration.
20      */
21     enum Order
22     {
23         /*! Message will not be delivered, for protocol use only. */
24         O_DROP       = 0,
25         /*! Message delivery is unreliable, for protocol use only. */
26         O_UNRELIABLE = 1,
27         /*! Message will be delivered in source fifo order. */
28         O_FIFO       = 2,
29         /*!
30          * Message will be delivered in same order on all nodes
31          * if it is delivered.
32          */
33         O_AGREED     = 3,
34         /*!
35          * Message will be delivered in safe order, it is guaranteed
36          * that all the nodes in group have received the message.
37          */
38         O_SAFE       = 4,
39 
40         /*!
41          * Message will be delivered only locally and delivery will fulfill the
42          * following property:
43          *
44          * Let M_c be message tagged with O_LOCAL_CAUSAL ordering requirement.
45          * Any message M_a which is delivered on any node so that delivery
46          * has causal precedence on generating M_c will be delivered locally
47          * before M_c.
48          *
49          * Note that the causality is guaranteed only with respect to
50          * already delivered messages.
51          */
52         O_LOCAL_CAUSAL = 8
53     };
54 }
55 
56 #endif // GCOMM_ORDER_HPP
57