13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <fcntl.h> 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <errno.h> 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <unistd.h> 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <stdlib.h> 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "stdio.h" 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmt.hpp" 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "jem_defs.hpp" 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmt.hpp" 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "plugin/dmtRWPlugin.hpp" 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "SyncML_DM_FileHandle.H" 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_File.h" 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//---------------------------Declaration---------------------- 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass testRWPluginTree; 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass testRWPluginNode; 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef JemSmartPtr< testRWPluginTree > PtestRWPluginTree; 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambytypedef JemSmartPtr< testRWPluginNode >PtestRWPluginNode; 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// PlugIn Tree 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass testRWPluginTree : public DmtRWPluginTree 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypublic: 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby testRWPluginTree(const char * rootPath); 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ~testRWPluginTree(); 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T DeleteNode( const char* path ); 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T CreateInteriorNode( const char* path, PDmtNode& ptrCreatedNode ); 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T CreateLeafNode( const char* path, PDmtNode& ptrCreatedNode, const DmtData& value, BOOLEAN isESN); 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T CreateInteriorNodeInternal( const char* path, PDmtNode& ptrCreatedNode, const DMStringVector & childNodeNames); 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T CreateLeafNodeInternal( const char* path, PDmtNode& ptrCreatedNode, const DmtData& value, BOOLEAN isESN ); 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby}; 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass testRWPluginNode : public DmtRWPluginNode 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypublic: 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby testRWPluginNode( //Leaf Node 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtPluginTree ptrTree, 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* path, 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DmtData & oData, 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN isESN 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby testRWPluginNode( //Interior Node 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtPluginTree ptrTree, 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* path, 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DMStringVector & childNodeNames 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T GetValue( DmtData& oData ) const; 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T SetValue( const DmtData& value ); 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T GetFirstChunk(DmtDataChunk& chunkData); 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T GetNextChunk(DmtDataChunk& chunkData); 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T SetFirstChunk(DmtDataChunk& chunkData); 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T SetNextChunk(DmtDataChunk& chunkData); 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T SetLastChunk(DmtDataChunk& chunkData); 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T Delete(); 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T Commit(); 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyprotected: 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ~testRWPluginNode(); 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby private: 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T SetChunkData(DmtDataChunk& chunkData); 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T GetChunkData(DmtDataChunk& chunkData); 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T OpenInternalStorageFile(); 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T CloseInternalFile(); 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString abStorageName; 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 totalSize; 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMFileHandler *fileHandle; 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 offset; 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby}; 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambytestRWPluginTree::testRWPluginTree(const char * rootPath):DmtRWPluginTree() 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(rootPath); 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambytestRWPluginTree::~testRWPluginTree() 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginTree::DeleteNode( const char* path ) 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtErrorDescription e= DmtRWPluginTree::DeleteNode(path); 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return e.GetErrorCode(); 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginTree::CreateInteriorNodeInternal( const char* path, PDmtNode& ptrCreatedNode, const DMStringVector & childNodeNames ) 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PtestRWPluginNode pNode; 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//Interior node 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode(this, 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby path, //RootNode is interior node 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby childNodeNames 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtErrorDescription e = this->SetNode(path, 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ptrCreatedNode = pNode; 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return e.GetErrorCode(); 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginTree::CreateLeafNodeInternal( const char* path, PDmtNode& ptrCreatedNode, const DmtData& value, BOOLEAN isESN ) 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PtestRWPluginNode pNode; 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//Leaf node 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby this, 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby path, 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby value, 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby isESN 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtErrorDescription e = this->SetNode(path, 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// return GetNode( path, ptrCreatedNode ); 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ptrCreatedNode = pNode; 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return e.GetErrorCode(); 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginTree::CreateInteriorNode( const char* path, PDmtNode& ptrCreatedNode ) 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DmtRWPluginTree::CreateInteriorNode(path, ptrCreatedNode); 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginTree::CreateLeafNode( const char* path, PDmtNode& ptrCreatedNode, const DmtData& value, BOOLEAN isESN ) 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DmtRWPluginTree::CreateLeafNode(path, ptrCreatedNode, value, isESN); 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*testRWPluginNode::testRWPluginNode( 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtPluginTree ptrTree, 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* path 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby) : DmtRWPluginNode((DmtRWPluginTree *) ((DmtPluginTree *)(ptrTree)), path, DmtData("")) 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby*/ 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambytestRWPluginNode::testRWPluginNode( 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtPluginTree ptrTree, 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* path, 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DmtData & oData, 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN isESN 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby) 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(ptrTree, path, oData, isESN); 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby abStorageName = NULL; 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby totalSize = 0L; 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileHandle = NULL; 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby offset = 0; 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambytestRWPluginNode::testRWPluginNode( //Interior Node 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtPluginTree ptrTree, 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* path, 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DMStringVector & childNodeNames 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby) 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(ptrTree, path, childNodeNames); 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::~destructor 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambytestRWPluginNode::~testRWPluginNode() 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CloseInternalFile(); 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby abStorageName = NULL; 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::GetValue( DmtData& oData ) const 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DmtPluginNode::GetValue(oData); 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::SetValue( const DmtData& value ) 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DmtRWPluginNode::SetValue(value); 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::GetChunkData 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Get chunk data 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::GetChunkData(DmtDataChunk& chunkData) 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = SYNCML_DM_SUCCESS; 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 remainlLen = totalSize- offset; 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 getLen = 0L; 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT8 *bufp; 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = OpenInternalStorageFile(); 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle == NULL) 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.SetChunkData(NULL, 0L); 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.SetReturnLen(getLen); 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.GetChunkData(&bufp); 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(remainlLen <0|| bufp == NULL) 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_INVALID_PARAMETER; 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(remainlLen == 0) 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.SetChunkData(NULL, 0L); 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.SetReturnLen(remainlLen); 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CloseInternalFile(); 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby getLen = chunkData.GetChunkSize(); 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(getLen > remainlLen) 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby getLen = remainlLen; 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.GetChunkData(&bufp); // the chunk data is available 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(bufp == NULL) 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_INVALID_PARAMETER; 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle->seek(XPL_FS_SEEK_SET, offset) != SYNCML_DM_SUCCESS) 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_IO_FAILURE; 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle->read(bufp, getLen) != SYNCML_DM_SUCCESS) 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_IO_FAILURE; 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.SetReturnLen(getLen); 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby offset += getLen; 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::GetFirstChunk 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Get next chunk 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::GetFirstChunk(DmtDataChunk& chunkData) 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = DmtRWPluginNode::GetFirstChunk(chunkData); 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return GetChunkData(chunkData); 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::GetNextChunk 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Get next chunk 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::GetNextChunk(DmtDataChunk& chunkData) 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = DmtRWPluginNode::GetNextChunk(chunkData); 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return GetChunkData(chunkData); 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 2763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::SetChunkData 2773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Set chunk data for an ESN 2783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 2793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 2813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 2823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 2833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::SetChunkData(DmtDataChunk& chunkData) 2843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = SYNCML_DM_SUCCESS; 2863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 dataLen; 2873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT8 *bufp; 2883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.GetChunkDataSize(dataLen); 2903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // No internal file created yet 2923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(abStorageName.length() == 0) { 2933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = DMFileHandler::createTempESNFileName(abStorageName); 2943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby abStorageName += ".lob"; 2953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 2963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 2973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else// Replace previous data 2993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 3003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Set first trunk 3013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(offset == 0) 3023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { totalSize = 0L; 3033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Remove the current data file 3053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = OpenInternalStorageFile(); 3063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = fileHandle->deleteFile(); 3103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete fileHandle; 3133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileHandle = NULL; 3143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(dataLen != 0) 3193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 3203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = OpenInternalStorageFile(); 3213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.GetChunkData(&bufp); // the chunk data is available 3253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle == NULL ||bufp == NULL) 3263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_INVALID_PARAMETER; 3273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle->seek(XPL_FS_SEEK_SET, offset) != SYNCML_DM_SUCCESS) 3293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_IO_FAILURE; 3303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle->write(bufp, dataLen) != SYNCML_DM_SUCCESS) 3313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_IO_FAILURE; 3323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 3333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby totalSize = offset + dataLen; 3343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby offset += dataLen; 3353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_oAttr.SetSize(totalSize); 3373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby chunkData.SetReturnLen(dataLen); 3383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::SetFirstChunk 3423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Set first chunk 3433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 3443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 3463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::SetFirstChunk(DmtDataChunk& chunkData) 3493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = DmtRWPluginNode::SetFirstChunk(chunkData); 3513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SetChunkData(chunkData); 3543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::SetNextChunk 3573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Get first chunk 3583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 3593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 3613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::SetNextChunk(DmtDataChunk& chunkData) 3643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = DmtRWPluginNode::SetNextChunk(chunkData); 3663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SetChunkData(chunkData); 3693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::SetLastChunk 3723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Set last chunk of data 3733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 3743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 3763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::SetLastChunk(DmtDataChunk& chunkData) 3793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 3803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = DmtRWPluginNode::SetLastChunk(chunkData); 3813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = SetChunkData(chunkData);; 3853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 3863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = CloseInternalFile(); 3893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 3903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 3913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 3923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::CloseInternalFile 3943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Open intenal storage file 3953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 3963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 3973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 3983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 3993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::CloseInternalFile() 4013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = SYNCML_DM_SUCCESS; 4033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileHandle != NULL) 4043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileHandle->close(); 4063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete fileHandle; 4073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileHandle = NULL; 4083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby offset = 0; 4103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 4113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 4133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::Commit 4143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Commit changes of the node 4153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 4163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 4183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 4193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::Commit() 4213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = DmtRWPluginNode::Commit(); 4233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 4243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 4253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return CloseInternalFile(); 4263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 4293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : testRWPluginNode::Delete 4303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Delete the node 4313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 4323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : SYNCML_DM_RET_STATUS_T : Returns SYNCML_DM_SUCCESS if success, otherwise fails 4343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 4363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::Delete() 4373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = SYNCML_DM_SUCCESS; 4393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(abStorageName.length() != 0) 4403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = OpenInternalStorageFile(); 4423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 4433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 4443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby retStatus = fileHandle->deleteFile(); 4463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(retStatus != SYNCML_DM_SUCCESS) 4473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 4483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby delete fileHandle; 4493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileHandle = NULL; 4503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby abStorageName = NULL; 4513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 4533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 4563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// FUNCTION : DmtRWPluginTree::IsESNSetComplete 4573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DESCRIPTION : Open intenal storage file 4583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// ARGUMENTS PASSED: 4593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// RETURN VALUE : 4613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//-------------------------------------------------------------------------------------------- 4623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 4633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T testRWPluginNode::OpenInternalStorageFile() 4643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 4653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retStatus = SYNCML_DM_SUCCESS; 4663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby struct stat st; 4673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // If the file is not opened before 4693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(fileHandle == NULL) 4703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(abStorageName.length() != 0) { 4723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby INT32 modeFlag = XPL_FS_FILE_RDWR; 4743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // If file does not exist use write mode instead of read/write to prevent file I/O error 4753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// if (!XPL_FS_Exist(abStorageName.c_str())) 4763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if(stat(abStorageName.c_str(), &st) < 0) 4773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 4783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby modeFlag = XPL_FS_FILE_WRITE; 4793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby fileHandle = new DMFileHandler(abStorageName.c_str()); 4813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (fileHandle->open(modeFlag) != SYNCML_DM_SUCCESS) 4823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_IO_FAILURE; 4833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby totalSize = fileHandle->size(); 4843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 4863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby totalSize = 0; 4873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 4883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retStatus; 4893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 4903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 4913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 4933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" 4943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMT_PluginLib_Data_GetPluginTree( 4953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pluginRootNodePath, 4963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMStringMap & mapParameters, //For the Tree 4973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtAPIPluginTree & pPluginTree //root tree for the current path 4983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby) 4993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 5003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// PDmtPluginTree pMyTree=PDmtRWPluginTree(new DmtRWPluginTree(pluginRootNodePath)); 5013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtPluginTree pMyTree= PDmtPluginTree (new testRWPluginTree(pluginRootNodePath)); 5023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PtestRWPluginNode pNode; 5043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMStringVector oChildren; 5063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren.push_back("branch1"); 5073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// oChildren.push_back("branch2"); 5083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//Interior node 5103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode(pMyTree, 5113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "", //RootNode is interior node 5123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren 5133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("", 5153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMStringVector oChildren1; 5183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("char"); 5193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("int"); 5203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("lob"); 5213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("lobbin"); 5223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("FloatLeaf"); 5233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("DateLeaf"); 5243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1.push_back("TimeLeaf"); 5253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//Interior node 5273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode(pMyTree, 5283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1", //RootNode is interior node 5293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oChildren1 5303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1", 5323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//Leaf node 5363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/char", 5393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData("char_value"), 5403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby false 5413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/char", 5433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Integer node 5463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/int", 5493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData(1234), 5503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby false 5513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/int", 5533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//ESN node of char type 5563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/lob", 5593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData(), 5603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby true 5613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/lob", 5633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // Binary ESN node 5663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/lobbin", 5693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData(NULL, 0), 5703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby true 5713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/lobbin", 5733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/FloatLeaf", 5793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData("-1.23456e+2", SYNCML_DM_DATAFORMAT_FLOAT), 5803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby false 5813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/FloatLeaf", 5833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/DateLeaf", 5893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData("2005-10-18", SYNCML_DM_DATAFORMAT_DATE), 5903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby false 5913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/DateLeaf", 5933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 5943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 5953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 5963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pNode=new testRWPluginNode( 5973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree, 5983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby "branch1/TimeLeaf", 5993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtData("11:38:58", SYNCML_DM_DATAFORMAT_TIME), 6003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby false 6013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 6023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pMyTree->SetNode("branch1/TimeLeaf", 6033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode(pNode.GetPtr()) 6043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ); 6053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pPluginTree=pMyTree; 6073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 6083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 6103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" 6113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyint DMT_PluginLib_GetAPIVersion(void) 6123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 6133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DMT_PLUGIN_VERSION_1_1; 6143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 6153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 616