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 #ifndef DMSESSION_H 18 #define DMSESSION_H 19 20 #ifndef __cplusplus 21 #error "This is a C++ header file; it requires C++ to compile." 22 #endif 23 24 /*================================================================================================== 25 26 Header Name: DMSession.h 27 28 General Description: This file contains declaration of of base DMSession class. 29 30 ==================================================================================================*/ 31 32 #include "dmtDefs.h" 33 #include "dmMemory.h" 34 #include "dmSessionDefs.h" 35 36 extern "C" { 37 #include "sml.h" 38 #include "smlerr.h" 39 } 40 41 /*================================================================================================== 42 CLASSES DECLARATION 43 ==================================================================================================*/ 44 45 class DMSession 46 { 47 48 public: 49 DMSession(); 50 51 virtual ~DMSession(); 52 53 inline void* operator new(size_t sz) 54 { 55 return (DmAllocMem(sz)); 56 } 57 58 inline void operator delete(void* buf) 59 { 60 DmFreeMem(buf); 61 } 62 63 protected: 64 virtual SYNCML_DM_RET_STATUS_T Init(BOOLEAN isWBXML); 65 66 /* This function will be called to register the DM Engine with the SyncML Toolkit. */ 67 SYNCML_DM_RET_STATUS_T RegisterDmEngineWithSyncmlToolkit(VoidPtr_t pUserData); 68 69 /* This function will be called to register the DM Engine with the SyncML Toolkit. */ 70 virtual SYNCML_DM_RET_STATUS_T SetToolkitCallbacks(SmlCallbacks_t * pSmlCallbacks); 71 72 /* This function will be called to un-register the DM Engine with the SyncML Toolkit. */ 73 virtual void UnRegisterDmEngineWithSyncmlToolkit(); 74 75 76 protected: 77 78 InstanceID_t sendInstanceId; /* Reference for Send DM doc SyncML instance */ 79 InstanceID_t recvInstanceId; /* Reference for Recv DM doc SyncML instance */ 80 81 MemPtr_t pReadPos; /* Workspace Pointer from which data can be read */ 82 MemPtr_t pWritePos; /* Workspace Pointer to which data can be written */ 83 84 MemSize_t workspaceFreeSize; /* Max free Size of available space for data */ 85 MemSize_t workspaceUsedSize; /* Size of used data in workspace which may be 86 read */ 87 UINT8 *smlContentType; 88 SmlEncoding_t smlEncodingType; 89 90 SYNCML_DM_INDIRECT_BUFFER_T sendSmlDoc; /* The SyncML document to be send to the 91 server */ 92 SYNCML_DM_INDIRECT_BUFFER_T recvSmlDoc; /* The SycnML document to be received from 93 the server */ 94 }; 95 96 #endif /* SYNCML_DM_MGMTSESSION_H */ 97