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