Home | History | Annotate | Download | only in native_async
      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: dmtAsyncAPI.h
     20 
     21     General Description: This file contains declaration of the DMT async APIs
     22 
     23 ==============================================================================*/
     24 
     25 #ifndef DMT_ASYNC_API_H
     26 #define DMT_ASYNC_API_H
     27 
     28 #include "dmtDefs.h"
     29 
     30 /************** STRUCTURES, ENUMS, AND TYPEDEFS ******************************/
     31 
     32 typedef UINT32 DMT_H_TREE;
     33 typedef UINT32 DMT_H_NODE;
     34 
     35 typedef struct
     36 {
     37   SYNCML_DM_DATAFORMAT_T  meta_format;
     38   union
     39   {
     40     CPCHAR    str_value;
     41     INT32     int_value;  /* int/bool values */
     42     struct
     43     {
     44       const UINT8* bin_value;
     45       INT32   len_bin_data;
     46     } bin;
     47   } data;
     48 
     49 } DMT_DATA_T;
     50 
     51 typedef struct {
     52 	UINT8 *chunkBuffer;	/* chunked data buffer */
     53 	INT32 dataSize; 		/* input data size */
     54 	INT32 returnLen; 		/* actual size of data get/set */
     55 } DMT_DATACHUNK_T;
     56 
     57 /* helper struct used by bulk operation functions like xxxValuesMap */
     58 typedef struct
     59 {
     60   CPCHAR*            ppChildren;   /* array of names (leaf children) */
     61   const DMT_DATA_T*  pData;        /* array of data (leaf children) */
     62   INT32              num_children; /* number of elements in data/name arrays */
     63 } DMT_LEAF_CHILDREN_DATA_T;
     64 
     65 typedef struct
     66 {
     67   CPCHAR  name;
     68   CPCHAR  format;
     69   CPCHAR  title;
     70   CPCHAR  type;
     71   CPCHAR  acl;
     72   INT32   version;
     73   INT32   size;
     74   INT64   timestamp;
     75 } DMT_ATTRIBUTE_T;
     76 
     77 
     78 typedef struct
     79 {
     80   UINT8  uiMode;
     81   UINT8  initiator;
     82   UINT16 sessionID;
     83   CPCHAR serverID;
     84   BOOLEAN authFlag;
     85 } DMT_NOTIFICATION_T;
     86 
     87 
     88 typedef struct
     89 {
     90   CPCHAR strPackageURI;                // URI of update package
     91   CPCHAR strCorrelator;
     92   CPCHAR strResultData;
     93   CPCHAR strAlertType;
     94   CPCHAR strAlertFormat;
     95   CPCHAR strAlertMark;
     96 } DMT_FRM_ALERT_T;
     97 
     98 
     99 typedef struct
    100 {
    101   SYNCML_DM_SESSION_DIRECTION_T direction;
    102   UINT32 sessionID;
    103   BOOLEAN isWBXML;
    104   DMT_FRM_ALERT_T * alerts;
    105   INT32             num_alerts;
    106 
    107 } DMT_SESSION_PROP_T;
    108 
    109 /* callback type definition */
    110 typedef enum {
    111   DMT_OPERATION_INIT,
    112   DMT_OPERATION_UNINIT,
    113   DMT_OPERATION_RELEASE_TREE,
    114   DMT_OPERATION_START_SRV_SESSION,
    115   DMT_OPERATION_RELEASE_NODE,
    116   DMT_OPERATION_DELETE_NODE,
    117   DMT_OPERATION_RENAME_NODE,
    118   DMT_OPERATION_CREATEI_NODE,
    119   DMT_OPERATION_CREATEL_NODE,
    120   DMT_OPERATION_SET_CHILDVALUES_MAP,
    121   DMT_OPERATION_FLUSH,
    122   DMT_OPERATION_COMMIT,
    123   DMT_OPERATION_ROLLBACK,
    124   DMT_OPERATION_BEGIN,
    125   DMT_OPERATION_SET_VALUE,
    126   DMT_OPERATION_SET_TITLE,
    127   DMT_OPERATION_SET_ACL,
    128 
    129 };
    130 typedef UINT8 DMT_OPERATION_TYPE_T;
    131 
    132 
    133 
    134 /* callback parameters */
    135 typedef struct
    136 {
    137     void* pUserData;
    138     DMT_OPERATION_TYPE_T nCallbackType;
    139     SYNCML_DM_RET_STATUS_T nStatusCode;
    140 } DMT_CALLBACK_STRUCT_STATUS_T;
    141 
    142 
    143 typedef struct
    144 {
    145   void* pUserData;
    146   SYNCML_DM_RET_STATUS_T nStatusCode;
    147   DMT_H_TREE  htree;  /* tree handle if succeeded */
    148 } DMT_CALLBACK_STRUCT_GETTREE_T;
    149 
    150 typedef struct
    151 {
    152   void* pUserData;
    153   SYNCML_DM_RET_STATUS_T nStatusCode;
    154   CPCHAR  result;     /* result script if succeeded; */
    155   INT32   result_len; /* length of the result (useful if binary)*/
    156 } DMT_CALLBACK_STRUCT_PROCESS_SCRIPT_T;
    157 
    158 typedef struct
    159 {
    160   void* pUserData;
    161   SYNCML_DM_RET_STATUS_T nStatusCode;
    162   CPCHAR  serverID;   /* server Id extracted from package 0 */
    163 } DMT_CALLBACK_STRUCT_BOOTSTRAP_T;
    164 
    165 
    166 typedef struct
    167 {
    168   void* pUserData;
    169   SYNCML_DM_RET_STATUS_T nStatusCode;
    170   DMT_NOTIFICATION_T notification;
    171 } DMT_CALLBACK_STRUCT_PROCESS_NOTIFICATION_T;
    172 
    173 typedef struct
    174 {
    175   void* pUserData;
    176   SYNCML_DM_RET_STATUS_T nStatusCode;
    177   DMT_H_NODE  hnode;    /* node handle if succeeded */
    178   BOOLEAN     leaf_node;/* true if leaf node */
    179   BOOLEAN     external_storage_node;/* true if External Storage node */
    180 } DMT_CALLBACK_STRUCT_GETNODE_T;
    181 
    182 typedef struct
    183 {
    184   void* pUserData;
    185   SYNCML_DM_RET_STATUS_T nStatusCode;
    186   CPCHAR* ppChildren; /* list of children */
    187   INT32   num_children;
    188 } DMT_CALLBACK_STRUCT_GET_CHILDNODE_NAMES_T;
    189 
    190 typedef struct
    191 {
    192   void* pUserData;
    193   SYNCML_DM_RET_STATUS_T nStatusCode;
    194   DMT_LEAF_CHILDREN_DATA_T data;         /* name->data list */
    195 } DMT_CALLBACK_STRUCT_GET_CHILDVALUES_MAP_T;
    196 
    197 typedef struct
    198 {
    199   void* pUserData;
    200   SYNCML_DM_RET_STATUS_T nStatusCode;
    201   DMT_ATTRIBUTE_T attributes;   /* node's attributes */
    202 } DMT_CALLBACK_STRUCT_GET_ATTRIBUTES_T;
    203 
    204 typedef struct
    205 {
    206   void* pUserData;
    207   SYNCML_DM_RET_STATUS_T nStatusCode;
    208   DMT_DATA_T data;         /* node's value */
    209 } DMT_CALLBACK_STRUCT_GET_VALUE_T;
    210 
    211 typedef struct
    212 {
    213   void* pUserData;
    214   SYNCML_DM_RET_STATUS_T nStatusCode;
    215   CPCHAR result;       /* Exec's result */
    216 } DMT_CALLBACK_STRUCT_EXECUTE_T;
    217 
    218 typedef struct
    219 {
    220   void* pUserData;
    221   SYNCML_DM_RET_STATUS_T nStatusCode;
    222   DMT_DATACHUNK_T *datachunk;
    223 } DMT_CALLBACK_STRUCT_DATA_CHUNK_T;
    224 
    225 
    226 
    227 /* Callback function */
    228 
    229 /* Callback function */
    230 typedef void (*DMT_CallbackNotifyOnIdle)(void);
    231 
    232 typedef void (*DMT_CallbackStatusCode)(DMT_CALLBACK_STRUCT_STATUS_T *pStruct);
    233 
    234 typedef void (*DMT_CallbackGetTree)(DMT_CALLBACK_STRUCT_GETTREE_T *pGetTreeStruct);
    235 
    236 typedef void (*DMT_CallbackProcessScript)(
    237      DMT_CALLBACK_STRUCT_PROCESS_SCRIPT_T *pProcessScriptStruct);
    238 
    239 typedef void (*DMT_CallbackBootstrap)(
    240      DMT_CALLBACK_STRUCT_BOOTSTRAP_T *pBootstrapStruct );
    241 
    242 
    243 typedef void (*DMT_CallbackProcessNotification)(
    244     DMT_CALLBACK_STRUCT_PROCESS_NOTIFICATION_T *pProcessNotificationStruct );
    245 
    246 typedef void (*DMT_CallbackGetNode)(DMT_CALLBACK_STRUCT_GETNODE_T *pStruct );
    247 
    248 typedef void (*DMT_CallbackGetChildNodeNames)(DMT_CALLBACK_STRUCT_GET_CHILDNODE_NAMES_T *pStruct );
    249 
    250 typedef void (*DMT_CallbackGetChildValuesMap)(DMT_CALLBACK_STRUCT_GET_CHILDVALUES_MAP_T *pStruct );
    251 
    252 typedef void (*DMT_CallbackGetAttributes)(DMT_CALLBACK_STRUCT_GET_ATTRIBUTES_T *pStruct );
    253 
    254 typedef void (*DMT_CallbackGetValue)(DMT_CALLBACK_STRUCT_GET_VALUE_T *pStruct );
    255 
    256 typedef void (*DMT_CallbackExecute)(DMT_CALLBACK_STRUCT_EXECUTE_T *pStruct );
    257 
    258 typedef void (*DMT_CallbackDataChunk)(DMT_CALLBACK_STRUCT_DATA_CHUNK_T *pStruct );
    259 
    260 
    261 #ifdef __cplusplus
    262 extern "C" {
    263 #endif
    264 
    265 /*=================================================================================
    266                                      FUNCTION PROTOTYPES
    267                                       APIs with CALLBACK
    268 ==================================================================================*/
    269 
    270 SYNCML_DM_RET_STATUS_T
    271 DMT_NotifyOnIdle(DMT_CallbackNotifyOnIdle callback,
    272                  void* pUserData );
    273 
    274 /* *****  Functions from DmtTreeFactory class ***** */
    275 /* initializes engine, no other functions should be called until it's done */
    276 SYNCML_DM_RET_STATUS_T
    277 DMT_Init(DMT_CallbackStatusCode callback, void* pUserData );
    278 
    279 SYNCML_DM_RET_STATUS_T
    280 DMT_Uninit(DMT_CallbackStatusCode callback, void* pUserData);
    281 
    282 SYNCML_DM_RET_STATUS_T
    283 DMT_GetTree(CPCHAR szPrincipal,
    284                 DMT_CallbackGetTree callback,
    285                 void* pUserData );
    286 
    287 SYNCML_DM_RET_STATUS_T
    288 DMT_GetSubtree(CPCHAR szPrincipal,
    289                   CPCHAR szSubtreeRoot,
    290                   DMT_CallbackGetTree callback,
    291                   void* pUserData );
    292 
    293 SYNCML_DM_RET_STATUS_T
    294 DMT_GetSubtreeEx(CPCHAR szPrincipal,
    295                   CPCHAR szSubtreeRoot,
    296                   SYNCML_DM_TREE_LOCK_TYPE_T nLockType,
    297                   DMT_CallbackGetTree callback,
    298                   void* pUserData );
    299 
    300 /* caller is responsible for manual deletion of tree object later */
    301 /* this function also returns tree serialization result */
    302 SYNCML_DM_RET_STATUS_T
    303 DMT_TreeRelease(DMT_H_TREE htree,
    304                  DMT_CallbackStatusCode callback,
    305                  void* pUserData );
    306 
    307 
    308 SYNCML_DM_RET_STATUS_T
    309 DMT_ProcessScript(CPCHAR szPrincipal,
    310                    const UINT8 * buf,
    311                    INT32 len,
    312                    BOOLEAN isWBXML,
    313                    DMT_CallbackProcessScript callback,
    314                    void* pUserData );
    315 
    316 
    317 SYNCML_DM_RET_STATUS_T
    318 DMT_StartServerSession(CPCHAR szPrincipal,
    319                         const DMT_SESSION_PROP_T * pSessionProp,
    320                         DMT_CallbackStatusCode callback,
    321                         void* pUserData );
    322 
    323 
    324 
    325 SYNCML_DM_RET_STATUS_T
    326 DMT_ProcessNotification(CPCHAR szPrincipal,
    327                         const UINT8 *buf,
    328                         INT32 len,
    329                         DMT_CallbackProcessNotification callback,
    330                         void* pUserData );
    331 
    332 
    333 SYNCML_DM_RET_STATUS_T
    334 DMT_Bootstrap(CPCHAR szPrincipal,
    335                   const UINT8 * buf,
    336                   INT32 len,
    337                   BOOLEAN isWBXML,
    338                   BOOLEAN isProcess,
    339                   DMT_CallbackBootstrap callback,
    340                   void* pUserData );
    341 
    342 
    343 /* *****  Functions from DmtTree class ***** */
    344 SYNCML_DM_RET_STATUS_T
    345 DMT_GetNode(DMT_H_TREE htree,
    346              CPCHAR  path,
    347              DMT_CallbackGetNode callback,
    348              void* pUserData );
    349 
    350 /* release node when it no longer needed */
    351 SYNCML_DM_RET_STATUS_T
    352 DMT_NodeRelease(DMT_H_NODE hnode,
    353                  DMT_CallbackStatusCode callback,
    354                  void* pUserData );
    355 
    356 SYNCML_DM_RET_STATUS_T
    357 DMT_DeleteNode(DMT_H_TREE htree,
    358                 CPCHAR  path,
    359                 DMT_CallbackStatusCode callback,
    360                 void* pUserData );
    361 
    362 SYNCML_DM_RET_STATUS_T
    363 DMT_RenameNode(DMT_H_TREE htree,
    364                 CPCHAR  path,
    365                 CPCHAR  new_node_name,
    366                 DMT_CallbackStatusCode callback,
    367                 void* pUserData );
    368 
    369 SYNCML_DM_RET_STATUS_T
    370 DMT_CreateInteriorNode(DMT_H_TREE htree,
    371                         CPCHAR  path,
    372                         DMT_CallbackStatusCode callback,
    373                         void* pUserData );
    374 
    375 SYNCML_DM_RET_STATUS_T
    376 DMT_CreateLeafNode(DMT_H_TREE htree,
    377                     CPCHAR path,
    378                     const DMT_DATA_T* data,
    379                     DMT_CallbackStatusCode callback,
    380                     void* pUserData );
    381 
    382 SYNCML_DM_RET_STATUS_T
    383 DMT_GetChildNodeNames(DMT_H_TREE htree,
    384                        CPCHAR  path,
    385                        DMT_CallbackGetChildNodeNames callback,
    386                        void* pUserData );
    387 
    388 SYNCML_DM_RET_STATUS_T
    389 DMT_Flush(DMT_H_TREE htree,
    390            DMT_CallbackStatusCode callback,
    391            void* pUserData );
    392 
    393 SYNCML_DM_RET_STATUS_T
    394 DMT_Commit(DMT_H_TREE htree,
    395             DMT_CallbackStatusCode callback,
    396             void* pUserData );
    397 
    398 SYNCML_DM_RET_STATUS_T
    399 DMT_Rollback(DMT_H_TREE htree,
    400               DMT_CallbackStatusCode callback,
    401               void* pUserData );
    402 
    403 SYNCML_DM_RET_STATUS_T
    404 DMT_Begin(DMT_H_TREE htree,
    405            DMT_CallbackStatusCode callback,
    406            void* pUserData );
    407 
    408 
    409 /* bulk operations support */
    410 SYNCML_DM_RET_STATUS_T
    411 DMT_GetChildValuesMap(DMT_H_TREE htree,
    412                        CPCHAR  path,
    413                        DMT_CallbackGetChildValuesMap callback,
    414                        void* pUserData );
    415 
    416 /**
    417 A helper method, deletes all leaf nodes and creates new ones, provided in the map
    418 The table key is the child node name, and value is the node value
    419 It changes leaf nodes only
    420 */
    421 SYNCML_DM_RET_STATUS_T
    422 DMT_SetChildValuesMap(DMT_H_TREE htree,
    423                        CPCHAR path,
    424                        const DMT_LEAF_CHILDREN_DATA_T*  data,
    425                        DMT_CallbackStatusCode callback,
    426                        void* pUserData );
    427 
    428 
    429 /* *****  Functions from DmtNode class ***** */
    430 SYNCML_DM_RET_STATUS_T
    431 DMT_GetAttributes(DMT_H_NODE hnode,
    432                    DMT_CallbackGetAttributes callback,
    433                    void* pUserData );
    434 
    435 SYNCML_DM_RET_STATUS_T
    436 DMT_GetValue(DMT_H_NODE hnode,
    437               DMT_CallbackGetValue callback,
    438               void* pUserData );
    439 
    440 SYNCML_DM_RET_STATUS_T
    441 DMT_SetValue(DMT_H_NODE hnode,
    442               const DMT_DATA_T* data,
    443               DMT_CallbackStatusCode callback,
    444               void* pUserData );
    445 
    446 SYNCML_DM_RET_STATUS_T
    447 DMT_SetTitle(DMT_H_NODE  hnode,
    448               CPCHAR title,
    449               DMT_CallbackStatusCode callback,
    450               void* pUserData );
    451 
    452 SYNCML_DM_RET_STATUS_T
    453 DMT_SetACL(DMT_H_NODE hnode,
    454             CPCHAR acl,
    455             DMT_CallbackStatusCode callback,
    456             void* pUserData );
    457 
    458 SYNCML_DM_RET_STATUS_T
    459 DMT_Execute(DMT_H_NODE hnode,
    460              CPCHAR params,
    461              DMT_CallbackExecute callback,
    462              void* pUserData );
    463 
    464 SYNCML_DM_RET_STATUS_T
    465 DMT_GetFirstChunk(DMT_H_NODE hnode,
    466 		DMT_DATACHUNK_T *datachunk,
    467              DMT_CallbackDataChunk  callback,
    468              void* pUserData );
    469 
    470 SYNCML_DM_RET_STATUS_T
    471 DMT_GetNextChunk(DMT_H_NODE hnode,
    472 		DMT_DATACHUNK_T *datachunk,
    473              DMT_CallbackDataChunk  callback,
    474              void* pUserData );
    475 
    476 SYNCML_DM_RET_STATUS_T
    477 DMT_SetFirstChunk(DMT_H_NODE hnode,
    478 		DMT_DATACHUNK_T *datachunk,
    479              DMT_CallbackDataChunk  callback,
    480              void* pUserData );
    481 
    482 SYNCML_DM_RET_STATUS_T
    483 DMT_SetNextChunk(DMT_H_NODE hnode,
    484 		DMT_DATACHUNK_T *datachunk,
    485              DMT_CallbackDataChunk  callback,
    486              void* pUserData );
    487 
    488 SYNCML_DM_RET_STATUS_T
    489 DMT_SetLastChunk(DMT_H_NODE hnode,
    490 		DMT_DATACHUNK_T *datachunk,
    491              DMT_CallbackDataChunk  callback,
    492              void* pUserData );
    493 
    494 INT32 DMT_GetChunkSize();
    495 /*=================================================================================
    496                                      FUNCTION PROTOTYPES
    497                                       APIs with messaging
    498 ==================================================================================*/
    499 SYNCML_DM_RET_STATUS_T
    500 DMT_NotifyOnIdle_Msg(UINT32 messageID,
    501                            void* pUserData );
    502 
    503 
    504 SYNCML_DM_RET_STATUS_T
    505 DMT_Init_Msg(UINT32 messageID, void* pUserData);
    506 
    507 SYNCML_DM_RET_STATUS_T
    508 DMT_Uninit_Msg(UINT32 messageID, void* pUserData);
    509 
    510 SYNCML_DM_RET_STATUS_T
    511 DMT_GetTree_Msg(CPCHAR szPrincipal,
    512                 UINT32 messageID,
    513                 void* pUserData );
    514 
    515 SYNCML_DM_RET_STATUS_T
    516 DMT_GetSubtree_Msg(CPCHAR szPrincipal,
    517                   CPCHAR szSubtreeRoot,
    518                   UINT32 messageID,
    519                   void* pUserData );
    520 
    521 SYNCML_DM_RET_STATUS_T
    522 DMT_GetSubtreeEx_Msg(CPCHAR szPrincipal,
    523                   CPCHAR szSubtreeRoot,
    524                   SYNCML_DM_TREE_LOCK_TYPE_T nLockType,
    525                   UINT32 messageID,
    526                   void* pUserData );
    527 
    528 /* caller is responsible for manual deletion of tree object later */
    529 /* this function also returns tree serialization result */
    530 SYNCML_DM_RET_STATUS_T
    531 DMT_TreeRelease_Msg(DMT_H_TREE htree,
    532                  UINT32 messageID,
    533                  void* pUserData );
    534 
    535 
    536 SYNCML_DM_RET_STATUS_T
    537 DMT_ProcessScript_Msg(CPCHAR szPrincipal,
    538                    const UINT8 * buf,
    539                    INT32 len,
    540                    BOOLEAN isWBXML,
    541                    UINT32 messageID,
    542                    void* pUserData );
    543 
    544 
    545 SYNCML_DM_RET_STATUS_T
    546 DMT_StartServerSession_Msg(CPCHAR szPrincipal,
    547                         const DMT_SESSION_PROP_T * pSessionProp,
    548                         UINT32 messageID,
    549                         void* pUserData );
    550 
    551 
    552 
    553 SYNCML_DM_RET_STATUS_T
    554 DMT_ProcessNotification_Msg(CPCHAR szPrincipal,
    555                         const UINT8 *buf,
    556                         INT32 len,
    557                         UINT32 messageID,
    558                         void* pUserData );
    559 
    560 
    561 SYNCML_DM_RET_STATUS_T
    562 DMT_Bootstrap_Msg(CPCHAR szPrincipal,
    563                     const UINT8 * buf,
    564                     INT32 len,
    565                     BOOLEAN isWBXML,
    566                     BOOLEAN isProcess,
    567                     UINT32 messageID,
    568                     void* pUserData );
    569 
    570 
    571 /* *****  Functions from DmtTree class ***** */
    572 SYNCML_DM_RET_STATUS_T
    573 DMT_GetNode_Msg(DMT_H_TREE htree,
    574              CPCHAR  path,
    575              UINT32 messageID,
    576              void* pUserData );
    577 
    578 /* release node when it no longer needed */
    579 SYNCML_DM_RET_STATUS_T
    580 DMT_NodeRelease_Msg(DMT_H_NODE hnode,
    581                  UINT32 messageID,
    582                  void* pUserData );
    583 
    584 SYNCML_DM_RET_STATUS_T
    585 DMT_DeleteNode_Msg(DMT_H_TREE htree,
    586                 CPCHAR  path,
    587                 UINT32 messageID,
    588                 void* pUserData );
    589 
    590 SYNCML_DM_RET_STATUS_T
    591 DMT_RenameNode_Msg(DMT_H_TREE htree,
    592                 CPCHAR  path,
    593                 CPCHAR  new_node_name,
    594                 UINT32 messageID,
    595                 void* pUserData );
    596 
    597 SYNCML_DM_RET_STATUS_T
    598 DMT_CreateInteriorNode_Msg(DMT_H_TREE htree,
    599                         CPCHAR  path,
    600                         UINT32 messageID,
    601                         void* pUserData );
    602 
    603 SYNCML_DM_RET_STATUS_T
    604 DMT_CreateLeafNode_Msg(DMT_H_TREE htree,
    605                     CPCHAR path,
    606                     const DMT_DATA_T* data,
    607                     UINT32 messageID,
    608                     void* pUserData );
    609 
    610 SYNCML_DM_RET_STATUS_T
    611 DMT_GetChildNodeNames_Msg(DMT_H_TREE htree,
    612                        CPCHAR  path,
    613                        UINT32 messageID,
    614                        void* pUserData );
    615 
    616 SYNCML_DM_RET_STATUS_T
    617 DMT_Flush_Msg(DMT_H_TREE htree, UINT32 messageID, void* pUserData);
    618 
    619 SYNCML_DM_RET_STATUS_T
    620 DMT_Commit_Msg(DMT_H_TREE htree, UINT32 messageID,  void* pUserData);
    621 
    622 SYNCML_DM_RET_STATUS_T
    623 DMT_Rollback_Msg(DMT_H_TREE htree, UINT32 messageID, void* pUserData);
    624 
    625 SYNCML_DM_RET_STATUS_T
    626 DMT_Begin_Msg(DMT_H_TREE htree, UINT32 messageID, void* pUserData);
    627 
    628 
    629 SYNCML_DM_RET_STATUS_T
    630 DMT_GetChildValuesMap_Msg(DMT_H_TREE htree,
    631                        CPCHAR  path,
    632                        UINT32 messageID,
    633                        void* pUserData );
    634 
    635 SYNCML_DM_RET_STATUS_T
    636 DMT_SetChildValuesMap_Msg(DMT_H_TREE htree,
    637                        CPCHAR path,
    638                        const DMT_LEAF_CHILDREN_DATA_T*  data,
    639                        UINT32 messageID,
    640                        void* pUserData );
    641 
    642 
    643 /* *****  Functions from DmtNode class ***** */
    644 SYNCML_DM_RET_STATUS_T
    645 DMT_GetAttributes_Msg(DMT_H_NODE hnode,
    646                    UINT32 messageID,
    647                    void* pUserData );
    648 
    649 SYNCML_DM_RET_STATUS_T
    650 DMT_GetValue_Msg(DMT_H_NODE hnode,
    651               UINT32 messageID,
    652               void* pUserData );
    653 
    654 SYNCML_DM_RET_STATUS_T
    655 DMT_SetValue_Msg(DMT_H_NODE hnode,
    656               const DMT_DATA_T* data,
    657               UINT32 messageID,
    658               void* pUserData );
    659 
    660 SYNCML_DM_RET_STATUS_T
    661 DMT_SetTitle_Msg(DMT_H_NODE  hnode,
    662               CPCHAR title,
    663               UINT32 messageID,
    664               void* pUserData );
    665 
    666 SYNCML_DM_RET_STATUS_T
    667 DMT_SetACL_Msg(DMT_H_NODE hnode,
    668             CPCHAR acl,
    669             UINT32 messageID,
    670             void* pUserData );
    671 
    672 SYNCML_DM_RET_STATUS_T
    673 DMT_Execute_Msg(DMT_H_NODE hnode,
    674              CPCHAR params,
    675              UINT32 messageID,
    676              void* pUserData );
    677 
    678 SYNCML_DM_RET_STATUS_T
    679 DMT_GetFirstChunk_Msg(DMT_H_NODE hnode,
    680 		DMT_DATACHUNK_T *datachunk,
    681              UINT32 messageID,
    682              void* pUserData );
    683 
    684 SYNCML_DM_RET_STATUS_T
    685 DMT_GetNextChunk_Msg(DMT_H_NODE hnode,
    686 		DMT_DATACHUNK_T *datachunk,
    687              UINT32 messageID,
    688              void* pUserData );
    689 
    690 SYNCML_DM_RET_STATUS_T
    691 DMT_SetFirstChunk_Msg(DMT_H_NODE hnode,
    692 		DMT_DATACHUNK_T *datachunk,
    693              UINT32 messageID,
    694              void* pUserData );
    695 
    696 SYNCML_DM_RET_STATUS_T
    697 DMT_SetNextChunk_Msg(DMT_H_NODE hnode,
    698 		DMT_DATACHUNK_T *datachunk,
    699              UINT32 messageID,
    700              void* pUserData );
    701 
    702 SYNCML_DM_RET_STATUS_T
    703 DMT_SetLastChunk_Msg(DMT_H_NODE hnode,
    704 		DMT_DATACHUNK_T *datachunk,
    705              UINT32 messageID,
    706              void* pUserData );
    707 
    708 /*=================================================================================
    709                                      FUNCTION PROTOTYPES
    710                                     Synchronous helper APIs
    711 ==================================================================================*/
    712 
    713 
    714 SYNCML_DM_ACL_PERMISSIONS_T
    715 DMT_AclGetPermissions(CPCHAR acl,CPCHAR principal);
    716 
    717 /* sets required permission for specified principal
    718    if result isn't successful set buf_len into required acl len */
    719 SYNCML_DM_RET_STATUS_T
    720 DMT_AclSetPermissions(char * acl,
    721                        INT32 * buf_len,
    722                        CPCHAR principal,
    723                        SYNCML_DM_ACL_PERMISSIONS_T permissions );
    724 
    725 
    726 /* Handler of DMT task messages, should be called from DM task */
    727 void DMT_MessageHandler(UINT32 msgtype, void *data);
    728 
    729 void DMT_Free_ProcessScriptStruct(DMT_CALLBACK_STRUCT_PROCESS_SCRIPT_T *pStruct);
    730 
    731 void DMT_Free_BootstrapStruct(DMT_CALLBACK_STRUCT_BOOTSTRAP_T *pStruct);
    732 
    733 void DMT_Free_ProcessNotificationStruct(DMT_CALLBACK_STRUCT_PROCESS_NOTIFICATION_T *pStruct);
    734 
    735 void DMT_Free_GetChildNodeNamesStruct(DMT_CALLBACK_STRUCT_GET_CHILDNODE_NAMES_T *pStruct);
    736 
    737 void DMT_Free_GetChildValuesStruct(DMT_CALLBACK_STRUCT_GET_CHILDVALUES_MAP_T *pStruct);
    738 
    739 void DMT_Free_GetAttributesStruct(DMT_CALLBACK_STRUCT_GET_ATTRIBUTES_T *pStruct);
    740 
    741 void DMT_Free_GetValueStruct(DMT_CALLBACK_STRUCT_GET_VALUE_T *pStruct);
    742 
    743 void DMT_Free_ExecuteStruct(DMT_CALLBACK_STRUCT_EXECUTE_T *pStruct);
    744 
    745 #ifdef __cplusplus
    746 }
    747 #endif
    748 
    749 #endif
    750