LOM2M  0.8.0
lom2m.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2013-2021 LAAS-CNRS (www.laas.fr)
3  7 Colonel Roche 31077 Toulouse - France
4 
5  The use of this source code requires an agreement with the CNRS.
6 
7  Initial Contributors:
8  David Gauchard, Guillaume Garzone, Thierry Monteil.
9 */
10 
11 #ifndef __LOM2M_H
12 #define __LOM2M_H
13 
14 #include "configuration.h"
15 
16 #include "bsp.h"
17 #include <list>
18 #define TY_NONE -1
19 #define TY1_ACP 1
20 #define TY2_APPL_ENTITY 2
21 #define TY3_CONTAINER 3
22 #define TY4_CONTENT_INSTANCE 4
23 #define TY5_CSEBASE 5
24 #define TY9_GROUP 9
25 #define TY16_REMOTE_CSE 16
26 #define TY23_SUBSCRIPTION 23
27 #define TY_NOTIFICATION 42
28 
29 #define TY_URIL 990
30 
31 /*
32 
33  Table 6.3.2.2.2.13
34  -
35  Interpretation of memberType
36 
37  Value Interpretation
38  1 accessControlPolicy
39  2 AE (application entity) m2m:ae
40  3 container m2m:cnt
41  4 contentInstance m2m:cin
42  5 CSEBase m2m:cb
43  6 delivery
44  7 eventConfig
45  8 execInstance
46  9 fanOutPoint
47  10 Group
48  11 localPolicy
49  12 m2mServiceSubscription
50  13 mgmtCmd
51  14 mgmtObj
52  15 Node
53  16 nodeInfo
54  17 pollingChannel
55  18 remoteCSE
56  19 Request
57  20 Schedule
58  21 statsCollect
59  22 statsConfig
60  23 Subscription m2m:sub
61  24 Mixed
62  See Clause 7.3.12 “Resource Type group”
63 
64 */
65 
66 /*
67 
68  Short Names
69  https://github.com/hsuyh/om2m_ver1/blob/master/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/constants/ShortName.java
70  http://www.onem2m.org/images/files/deliverables/TS-0004-CoreProtocol-V-2014-08.pdf
71 
72  ae: Application Entity
73  cnt: Container
74  cin: Content Instance
75  sub: Subscription
76  sgn: Agregated Notification
77  rn: Resource Name
78  ty: Type
79  ri: Resource ID
80  pi: Parent Id
81  Acpi: Access Control Policies IDs
82  uril: URI List
83  ct: Creation Time
84  et: Expiration Time
85  lt: Last Modified Time
86  lbl: Label
87  cnf: Content Format
88  con: Content
89  mni: Maximum Number of Instance
90  st: State Tag
91  cs: Content Size
92  aei: Application Entity Id
93  api: Application Id
94  poa: Point of Access
95  rr: Request Reachability
96  nev: Notification Event
97  nep: Representation
98  sur: Subscription URI
99  Enc: Event Notification Criteria
100  nu: notification URI
101  cst: CSE type - 1:IN-CSE 2:MN-CSE 3:AEN-CSE
102  mid: (M)2M (ID)entifiers (used in groups)
103  mtv: Member Type Validated (groups)
104 
105  http://www.onem2m.org/images/files/deliverables/TS-0009-HTTP_Protocol_Binding-V1_5_1.pdf
106  Table 6.2.2-1: oneM2M request parameters mapped as query-string field
107  Request Parameter Field NameNote
108  Response Type rt responseTypeelement of the response type parameter
109  Result Persistence rp
110  Result Content rc
111  Delivery Aggregation da
112  createdBefore crb filterCriteria condition
113  createdAfter cra filterCriteria condition
114  modifiedSince ms filterCriteria condition
115  unmodifiedSince us filterCriteria condition
116  stateTagSmaller sts filterCriteria condition
117  stateTagBigger stb filterCriteria condition
118  expireBefore exb filterCriteria condition
119  expireAfter exa filterCriteria condition
120  labels lbl filterCriteria condition
121  resourceType rty filterCriteria condition
122  sizeAbove sza filterCriteria condition
123  sizeBelow szb filterCriteria condition
124  contentType cty filterCriteria condition
125  limit lim filterCriteria condition
126  attribute atr filterCriteria condition
127  filterUsage fu filterCriteria condition indicate that it is a discovery request.
128  Discovery Result Type drt
129 
130 */
131 
132 /*
133  http://www.onem2m.org/images/files/deliverables/TS-0009-HTTP_Protocol_Binding-V1_0_1.pdf
134  oneM2M Operation HTTPMethod
135  Create POST
136  Retrieve GET
137  Update PUT(full update)
138  or POST(partial update)
139  Delete DELETE
140  Notify POST
141 */
142 
143 
145 
146 extern const char S_slash [];
147 extern const char S_date [];
148 extern const char S_value [];
149 extern const char S_creation [];
150 extern const char S_modification [];
151 extern const char S_expiration [];
152 extern const char S_xml [];
153 extern const char S_json [];
154 extern const char S_tyeq [4];
155 extern const char S_rn [];
156 extern const char S_INCSE [];
157 
158 extern const char ENCODED_TRUE [];
159 extern const char ENCODED_FALSE [];
160 
161 extern String CSE_ID;
162 extern String CSE_NAME;
163 extern String ACP_ADMIN_NAME;
164 extern int CSE_TYPE;
165 extern const String M2M_SP_ID;
166 extern String ADMIN_ORIGINATOR;
167 extern String DEFAULT_PROTOCOL;
168 #if HTTP_BINDING
169 extern int HTTP_BINDING_ENABLED;
170 #endif // HTTP_BINDING
171 #if PERSISTENCE_FEAT
172 extern int BACKUP_PERIOD;
173 extern int BACKUP_ENABLED;
174 #endif
175 #if MQTTS_BINDING
176 extern int MQTTS_ENABLED;
177 extern int MQTTS_PORT;
178 extern int MQTTS_RETRY_PERIOD;
179 extern int MQTTS_TIMEOUT;
180 extern String MQTTS_CLIENT_ID_PREFIX;
181 extern String MQTTS_ENDPOINT;
182 #endif
184 extern int globalResourcesThreshold;
185 
186 //extern std::list<String> SUPPORTED_RESTYPE;
187 extern std::list<int> SUPPORTED_RESTYPE;
188 extern std::list<String> SUPPORTED_RELEASE_VERSIONS;
189 extern std::list<String> SERIALISATION_TYPES;
190 
191 extern String PORT; // constant defining the port used by the CSE POA
192 extern String IP;
198 const char* rqType(int ty);
199 const char* contentTypeEncoding(Encoding enc);
200 const char* contentType(const String& filename);
201 
202 
203 extern String REMOTE_CSE_POA;
204 extern String REMOTE_CSE_ID;
205 extern String REMOTE_CSE_NAME;
206 extern int REMOTE_CSE_TYPE;
207 
208 extern bool dataUpdated;
209 
213 #if FEAT_RCN_9
214 extern std::list<String> modifiedAttributes;
215 #endif // FEAT_RCN_9
216 
217 #endif // __LOM2M_H
Encoding
Definition: bsp.h:39
String REMOTE_CSE_NAME
String IP
Definition: lom2m.cpp:18
const char S_xml[]
Definition: lom2m.cpp:53
const char * rqType(int ty)
Definition: lom2m.cpp:83
String ACP_ADMIN_NAME
Definition: lom2m.cpp:15
const char S_INCSE[]
Definition: lom2m.cpp:57
const char * contentType(const String &filename)
Definition: bsp-esp8266.cpp:13
const char S_modification[]
Definition: lom2m.cpp:51
int MQTTS_PORT
Definition: lom2m.cpp:34
const char S_tyeq[4]
Definition: lom2m.cpp:55
int REMOTE_CSE_TYPE
const char S_date[]
Definition: lom2m.cpp:48
const char S_rn[]
Definition: lom2m.cpp:56
String MQTTS_CLIENT_ID_PREFIX
Definition: lom2m.cpp:37
String MQTTS_ENDPOINT
Definition: lom2m.cpp:36
String CSE_ID
Definition: lom2m.cpp:13
const char S_expiration[]
Definition: lom2m.cpp:52
int MQTTS_ENABLED
Definition: lom2m.cpp:33
const char ENCODED_TRUE[]
Definition: lom2m.cpp:60
String CSE_NAME
Definition: lom2m.cpp:14
int MQTTS_TIMEOUT
Definition: lom2m.cpp:38
String PORT
Definition: lom2m.cpp:17
int MAX_NUMBER_OF_INSTANCES_DEFAULT
Definition: lom2m.cpp:40
const char ENCODED_FALSE[]
Definition: lom2m.cpp:61
String DEFAULT_PROTOCOL
Definition: lom2m.cpp:21
bool dataUpdated
Definition: lom2m.cpp:104
std::list< String > modifiedAttributes
Definition: lom2m.cpp:106
const String M2M_SP_ID
int globalResourcesThreshold
Definition: lom2m.cpp:41
std::list< int > SUPPORTED_RESTYPE
Definition: lom2m.cpp:43
const char S_creation[]
Definition: lom2m.cpp:50
std::list< String > SUPPORTED_RELEASE_VERSIONS
Definition: lom2m.cpp:44
int MQTTS_RETRY_PERIOD
Definition: lom2m.cpp:35
String ADMIN_ORIGINATOR
std::list< String > SERIALISATION_TYPES
Definition: lom2m.cpp:45
String REMOTE_CSE_POA
const char S_json[]
Definition: lom2m.cpp:54
int CSE_TYPE
Definition: lom2m.cpp:16
int HTTP_BINDING_ENABLED
Definition: lom2m.cpp:26
const char S_value[]
Definition: lom2m.cpp:49
const char * contentTypeEncoding(Encoding enc)
Definition: lom2m.cpp:72
const char S_slash[]
String REMOTE_CSE_ID