1 #pragma once
2 #include "types.h"
3 
4 /* Message boolean macros */
5 #define SUCCESS 1
6 #define FAILURE 0
7 
8 /* Defined context values */
9 const uint32_t STATESERVER_CONTEXT_WAKE_CHILDREN = 1001;
10 
11 /* Msgtype limits enum */
12 enum MsgtypeRanges {
13     // Control range
14     CONTROL_MSGTYPE_MIN = 9000,
15     CONTROL_MSGTYPE_MAX = 9999,
16     // ClientAgent range
17     CLIENTAGENT_MSGTYPE_MIN = 1000,
18     CLIENTAGENT_MSGTYPE_MAX = 1999,
19     // StateServer range
20     STATESERVER_MSGTYPE_MIN = 2000,
21     STATESERVER_MSGTYPE_MAX = 2999,
22     // DatabaseServer range
23     DBSERVER_MSGTYPE_MIN = 3000,
24     DBSERVER_MSGTYPE_MAX = 3999,
25 };
26 
27 /* Message type definitions */
28 enum MessageTypes {
29     // Reserved
30     RESERVED_MSG_TYPE = 0,
31 
32     // Control messages
33     CONTROL_ADD_CHANNEL        = 9000,
34     CONTROL_REMOVE_CHANNEL     = 9001,
35     CONTROL_ADD_RANGE          = 9002,
36     CONTROL_REMOVE_RANGE       = 9003,
37     CONTROL_ADD_POST_REMOVE    = 9010,
38     CONTROL_CLEAR_POST_REMOVES = 9011,
39     CONTROL_SET_CON_NAME       = 9012,
40     CONTROL_SET_CON_URL        = 9013,
41     CONTROL_LOG_MESSAGE        = 9014,
42 
43     // ClientAgent messages
44     CLIENTAGENT_SET_STATE                  = 1000,
45     CLIENTAGENT_SET_CLIENT_ID              = 1001,
46     CLIENTAGENT_SEND_DATAGRAM              = 1002,
47     CLIENTAGENT_EJECT                      = 1004,
48     CLIENTAGENT_DROP                       = 1005,
49     CLIENTAGENT_GET_NETWORK_ADDRESS        = 1006,
50     CLIENTAGENT_GET_NETWORK_ADDRESS_RESP   = 1007,
51     CLIENTAGENT_DECLARE_OBJECT             = 1010,
52     CLIENTAGENT_UNDECLARE_OBJECT           = 1011,
53     CLIENTAGENT_ADD_SESSION_OBJECT         = 1012,
54     CLIENTAGENT_REMOVE_SESSION_OBJECT      = 1013,
55     CLIENTAGENT_SET_FIELDS_SENDABLE        = 1014,
56     CLIENTAGENT_GET_TLVS                   = 1015,
57     CLIENTAGENT_GET_TLVS_RESP              = 1016,
58     CLIENTAGENT_OPEN_CHANNEL               = 1100,
59     CLIENTAGENT_CLOSE_CHANNEL              = 1101,
60     CLIENTAGENT_ADD_POST_REMOVE            = 1110,
61     CLIENTAGENT_CLEAR_POST_REMOVES         = 1111,
62     CLIENTAGENT_ADD_INTEREST               = 1200,
63     CLIENTAGENT_ADD_INTEREST_MULTIPLE      = 1201,
64     CLIENTAGENT_REMOVE_INTEREST            = 1203,
65     CLIENTAGENT_DONE_INTEREST_RESP         = 1204,
66 
67     // StateServer control messages
68     STATESERVER_CREATE_OBJECT_WITH_REQUIRED       = 2000,
69     STATESERVER_CREATE_OBJECT_WITH_REQUIRED_OTHER = 2001,
70     STATESERVER_DELETE_AI_OBJECTS                 = 2009,
71     // StateServer object messages
72     STATESERVER_OBJECT_GET_FIELD         = 2010,
73     STATESERVER_OBJECT_GET_FIELD_RESP    = 2011,
74     STATESERVER_OBJECT_GET_FIELDS        = 2012,
75     STATESERVER_OBJECT_GET_FIELDS_RESP   = 2013,
76     STATESERVER_OBJECT_GET_ALL           = 2014,
77     STATESERVER_OBJECT_GET_ALL_RESP      = 2015,
78     STATESERVER_OBJECT_SET_FIELD         = 2020,
79     STATESERVER_OBJECT_SET_FIELDS        = 2021,
80     STATESERVER_OBJECT_DELETE_FIELD_RAM  = 2030,
81     STATESERVER_OBJECT_DELETE_FIELDS_RAM = 2031,
82     STATESERVER_OBJECT_DELETE_RAM        = 2032,
83     // StateServer visibility messages
84     STATESERVER_OBJECT_SET_LOCATION                       = 2040,
85     STATESERVER_OBJECT_CHANGING_LOCATION                  = 2041,
86     STATESERVER_OBJECT_ENTER_LOCATION_WITH_REQUIRED       = 2042,
87     STATESERVER_OBJECT_ENTER_LOCATION_WITH_REQUIRED_OTHER = 2043,
88     STATESERVER_OBJECT_GET_LOCATION                       = 2044,
89     STATESERVER_OBJECT_GET_LOCATION_RESP                  = 2045,
90     STATESERVER_OBJECT_LOCATION_ACK                       = 2046,
91     STATESERVER_OBJECT_SET_AI                             = 2050,
92     STATESERVER_OBJECT_CHANGING_AI                        = 2051,
93     STATESERVER_OBJECT_ENTER_AI_WITH_REQUIRED             = 2052,
94     STATESERVER_OBJECT_ENTER_AI_WITH_REQUIRED_OTHER       = 2053,
95     STATESERVER_OBJECT_GET_AI                             = 2054,
96     STATESERVER_OBJECT_GET_AI_RESP                        = 2055,
97     STATESERVER_OBJECT_SET_OWNER                          = 2060,
98     STATESERVER_OBJECT_CHANGING_OWNER                     = 2061,
99     STATESERVER_OBJECT_ENTER_OWNER_WITH_REQUIRED          = 2062,
100     STATESERVER_OBJECT_ENTER_OWNER_WITH_REQUIRED_OTHER    = 2063,
101     STATESERVER_OBJECT_GET_OWNER                          = 2064,
102     STATESERVER_OBJECT_GET_OWNER_RESP                     = 2065,
103     STATESERVER_OBJECT_ENTER_INTEREST_WITH_REQUIRED       = 2066,
104     STATESERVER_OBJECT_ENTER_INTEREST_WITH_REQUIRED_OTHER = 2067,
105     // StateServer parent-method messages
106     STATESERVER_OBJECT_GET_ZONE_OBJECTS     = 2100,
107     STATESERVER_OBJECT_GET_ZONES_OBJECTS    = 2102,
108     STATESERVER_OBJECT_GET_CHILDREN         = 2104,
109     STATESERVER_OBJECT_GET_ZONE_COUNT       = 2110,
110     STATESERVER_OBJECT_GET_ZONE_COUNT_RESP  = 2111,
111     STATESERVER_OBJECT_GET_ZONES_COUNT      = 2112,
112     STATESERVER_OBJECT_GET_ZONES_COUNT_RESP = 2113,
113     STATESERVER_OBJECT_GET_CHILD_COUNT      = 2114,
114     STATESERVER_OBJECT_GET_CHILD_COUNT_RESP = 2115,
115     STATESERVER_OBJECT_DELETE_ZONE          = 2120,
116     STATESERVER_OBJECT_DELETE_ZONES         = 2122,
117     STATESERVER_OBJECT_DELETE_CHILDREN      = 2124,
118     STATESERVER_GET_ACTIVE_ZONES            = 2125,
119     STATESERVER_GET_ACTIVE_ZONES_RESP       = 2126,
120     // DBSS object messages
121     DBSS_OBJECT_ACTIVATE_WITH_DEFAULTS       = 2200,
122     DBSS_OBJECT_ACTIVATE_WITH_DEFAULTS_OTHER = 2201,
123     DBSS_OBJECT_GET_ACTIVATED                = 2207,
124     DBSS_OBJECT_GET_ACTIVATED_RESP           = 2208,
125     DBSS_OBJECT_DELETE_FIELD_RAM             = 2230,
126     DBSS_OBJECT_DELETE_FIELDS_RAM            = 2231,
127     DBSS_OBJECT_DELETE_DISK                  = 2232,
128 
129     // DatabaseServer messages
130     DBSERVER_CREATE_OBJECT                    = 3000,
131     DBSERVER_CREATE_OBJECT_RESP               = 3001,
132     DBSERVER_OBJECT_GET_FIELD                 = 3010,
133     DBSERVER_OBJECT_GET_FIELD_RESP            = 3011,
134     DBSERVER_OBJECT_GET_FIELDS                = 3012,
135     DBSERVER_OBJECT_GET_FIELDS_RESP           = 3013,
136     DBSERVER_OBJECT_GET_ALL                   = 3014,
137     DBSERVER_OBJECT_GET_ALL_RESP              = 3015,
138     DBSERVER_OBJECT_SET_FIELD                 = 3020,
139     DBSERVER_OBJECT_SET_FIELDS                = 3021,
140     DBSERVER_OBJECT_SET_FIELD_IF_EQUALS       = 3022,
141     DBSERVER_OBJECT_SET_FIELD_IF_EQUALS_RESP  = 3023,
142     DBSERVER_OBJECT_SET_FIELDS_IF_EQUALS      = 3024,
143     DBSERVER_OBJECT_SET_FIELDS_IF_EQUALS_RESP = 3025,
144     DBSERVER_OBJECT_SET_FIELD_IF_EMPTY        = 3026,
145     DBSERVER_OBJECT_SET_FIELD_IF_EMPTY_RESP   = 3027,
146     DBSERVER_OBJECT_DELETE_FIELD              = 3030,
147     DBSERVER_OBJECT_DELETE_FIELDS             = 3031,
148     DBSERVER_OBJECT_DELETE                    = 3032,
149 };
150