1/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*============================================================================
18
19    Header Name: dmtAsyncData.h
20
21    General Description: This file contains declaration of structures for
22    async APIs
23
24==============================================================================*/
25
26#ifndef DMT_ASYNC_STRUCT_H
27#define DMT_ASYNC_STRUCT_H
28
29/************** HEADER FILE INCLUDES *****************************************/
30
31#include "dmtAsyncAPI.h"
32#include "dmbuffer.h"
33#include "dmMemory.h"
34#include "dmt.hpp"
35
36
37/************** STRUCTURES, ENUMS, AND TYPEDEFS ******************************/
38
39class DMAsyncMessage
40{
41
42public:
43
44    UINT32 messageID;
45    UINT32 pUserData;
46
47    DMAsyncMessage()
48    {
49      messageID = 0;
50      pUserData = 0;
51
52    }
53
54    inline void* operator new(size_t sz)
55    {
56      return (DmAllocMem(sz));
57    }
58
59    inline void operator delete(void* buf)
60    {
61      DmFreeMem(buf);
62    }
63
64
65    SYNCML_DM_RET_STATUS_T set(UINT32 messageID, UINT32 pUserData)
66    {
67      this->messageID = messageID;
68      this->pUserData = pUserData;
69      return SYNCML_DM_SUCCESS;
70    }
71
72};
73
74
75
76
77class DMPrincipalMessage : public DMAsyncMessage
78{
79
80public:
81
82    DmtPrincipal principal;
83
84    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
85                               UINT32 messageID,
86                               UINT32 pUserData);
87};
88
89
90class DMGetSubTreeMessage : public DMPrincipalMessage
91{
92
93public:
94
95
96    DMString subtreeRoot;
97    SYNCML_DM_TREE_LOCK_TYPE_T nLockType;
98    DMT_CallbackGetTree callback;
99
100
101    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
102                                CPCHAR subtreeRoot,
103                                SYNCML_DM_TREE_LOCK_TYPE_T nLockType,
104                                DMT_CallbackGetTree callback,
105                                UINT32 messageID,
106                                UINT32 pUserData);
107
108};
109
110
111
112class DMScriptMessage : public DMPrincipalMessage
113{
114
115public:
116    DMBuffer buf;
117    BOOLEAN isWBXML;
118
119
120    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
121                               const UINT8 * buf,
122                               INT32 len,
123                               BOOLEAN isWBXML,
124                               UINT32 messageID,
125                               UINT32 pUserData);
126
127};
128
129
130class DMProcessScriptMessage : public DMScriptMessage
131{
132
133public:
134    DMT_CallbackProcessScript callback;
135
136    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
137                               const UINT8 * buf,
138                               INT32 len,
139                               BOOLEAN isWBXML,
140                               DMT_CallbackProcessScript callback,
141                               UINT32 messageID,
142                               UINT32 pUserData);
143
144};
145
146class DMBootstrapMessage : public DMScriptMessage
147{
148public:
149    DMT_CallbackBootstrap callback;
150    BOOLEAN isProcess;
151
152    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
153                               const UINT8 * buf,
154                               INT32 len,
155                               BOOLEAN isWBXML,
156                               BOOLEAN isProcess,
157                               DMT_CallbackBootstrap callback,
158                               UINT32 messageID,
159                               UINT32 pUserData);
160
161};
162
163
164class DMStartServerSessionMessage : public DMPrincipalMessage
165{
166public:
167    DmtSessionProp sessionProp;
168    DMT_CallbackStatusCode callback;
169
170    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
171                               const DMT_SESSION_PROP_T * pSessionProp,
172                               DMT_CallbackStatusCode callback,
173                               UINT32 messageID,
174                               UINT32 pUserData);
175
176};
177
178class DMProcessNotificationMessage : public DMPrincipalMessage
179{
180public:
181    DMBuffer buf;
182    DMT_CallbackProcessNotification callback;
183
184    SYNCML_DM_RET_STATUS_T set(CPCHAR szPrincipal,
185                               const UINT8 * buf,
186                               INT32 len,
187                               DMT_CallbackProcessNotification callback,
188                               UINT32 messageID,
189                               UINT32 pUserData);
190
191};
192
193
194class DMTreeMessage : public DMAsyncMessage
195{
196public:
197    DMT_H_TREE htree;
198    DMString path;
199
200    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
201                               CPCHAR path,
202                               UINT32 messageID,
203                               UINT32 pUserData);
204
205};
206
207
208class DMGetNodeMessage : public DMTreeMessage
209{
210public:
211    DMT_CallbackGetNode callback;
212
213    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
214                               CPCHAR path,
215                               DMT_CallbackGetNode callback,
216                               UINT32 messageID,
217                               UINT32 pUserData);
218
219};
220
221
222class DMTreeNodeMessage : public DMTreeMessage
223{
224public:
225    DMT_CallbackStatusCode callback;
226    DMString str;
227
228    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
229                               CPCHAR path,
230                               CPCHAR str,
231                               DMT_CallbackStatusCode callback,
232                               UINT32 messageID,
233                               UINT32 pUserData);
234
235};
236
237
238
239class DMCreateLeafNodeMessage : public DMTreeMessage
240{
241public:
242    DmtData data;
243    DMT_CallbackStatusCode callback;
244
245    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
246                               CPCHAR path,
247                               const DMT_DATA_T* data,
248                               DMT_CallbackStatusCode callback,
249                               UINT32 messageID,
250                               UINT32 pUserData);
251
252};
253
254
255class DMGetChildNodeNamesMessage : public DMTreeMessage
256{
257public:
258    DMT_CallbackGetChildNodeNames callback;
259
260    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
261                               CPCHAR path,
262                               DMT_CallbackGetChildNodeNames callback,
263                               UINT32 messageID,
264                               UINT32 pUserData);
265
266
267};
268
269class DMGetChildValuesMapMessage : public DMTreeMessage
270{
271public:
272    DMT_CallbackGetChildValuesMap callback;
273
274    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
275                                CPCHAR path,
276                                DMT_CallbackGetChildValuesMap callback,
277                                UINT32 messageID,
278                                UINT32 pUserData);
279
280};
281
282
283class DMSetChildValuesMapMessage : public DMTreeMessage
284{
285public:
286    DMMap<DMString, DmtData> data;
287    DMT_CallbackStatusCode callback;
288
289    SYNCML_DM_RET_STATUS_T set(DMT_H_TREE htree,
290                               CPCHAR path,
291                               const DMT_LEAF_CHILDREN_DATA_T*  data,
292                               DMT_CallbackStatusCode callback,
293                               UINT32 messageID,
294                               UINT32 pUserData);
295
296};
297
298
299class DMSetValueMessage : public DMAsyncMessage
300{
301public:
302    DMT_H_NODE hnode;
303    DmtData data;
304    DMT_CallbackStatusCode callback;
305
306    SYNCML_DM_RET_STATUS_T set(DMT_H_NODE hnode,
307                                const DMT_DATA_T* data,
308                                DMT_CallbackStatusCode callback,
309                                UINT32 messageID,
310                                UINT32 pUserData);
311
312};
313
314
315class DMNodeMessage : public DMAsyncMessage
316{
317public:
318    DMString str;
319    DMT_H_NODE hnode;
320    DMT_CallbackStatusCode callback;
321
322    SYNCML_DM_RET_STATUS_T set(DMT_H_NODE hnode,
323                               CPCHAR str,
324                               DMT_CallbackStatusCode callback,
325                               UINT32 messageID,
326                               UINT32 pUserData);
327
328};
329
330
331class DMExecuteMessage :  public DMNodeMessage
332{
333public:
334    DMString params;
335    DMT_CallbackExecute callback;
336
337    SYNCML_DM_RET_STATUS_T set(DMT_H_NODE hnode,
338                               CPCHAR params,
339                               DMT_CallbackExecute callback,
340                               UINT32 messageID,
341                               UINT32 pUserData);
342
343};
344
345#endif
346