13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (C) 2014 The Android Open Source Project 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License"); 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * you may not use this file except in compliance with the License. 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * You may obtain a copy of the License at 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * http://www.apache.org/licenses/LICENSE-2.0 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Unless required by applicable law or agreed to in writing, software 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS, 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * See the License for the specific language governing permissions and 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * limitations under the License. 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef _DM_TREE_NODE_CLASS_H 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define _DM_TREE_NODE_CLASS_H 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __cplusplus 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#error "This is a C++ header file; it requires C++ to compile." 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//------------------------------------------------------------------------ 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// Header Name: dm_tree_node_class.H 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// General Description: This file contains the definition of 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// DMNode class. 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//------------------------------------------------------------------------ 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "syncml_dm_data_types.h" //For DM data type definitions 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Logger.h" 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dm_tree_typedef.h" //For tree type definitions 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmstring.h" 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmbuffer.h" 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmdefs.h" 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmt.hpp" 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmtPlugin.hpp" 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmPlugin.h" 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass SyncML_DM_Archive; 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyclass DMNode 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyprotected: 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //Those values should not be called directly as For 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // plugin proxy node, you must access them through accessor function. 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // For archiver, it is OK. 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString abNodeName; 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMNode *pcParentOfNode; //Pointer to Parent of the node 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMNode *pcFirstChild; //Pointer to First Child of the node 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMNode *pcNextSibling; //Pointer to Next Sibling of the node 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // psType cannot be accessed directly for mime type optimization 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString psType_; 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString m_strTitle; 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_FORMAT_T bFormat; 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT16 m_nFlags; // bit 0 set if plugin, bit 1 set if permanent: see next enum for details 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_IGNORE_TSTAMP_AND_VERSION 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_CLK_CLOCK_T wTStamp; 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT16 wVerNo; 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR getType() const; 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T setType(const char * strType); 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T set(const DMGetData * pData); 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T set(CPCHAR strName, CPCHAR strTitle, const DMGetData * pData); 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T set(const DMAddNodeProp * pNodeProp); 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambypublic: 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SyncML_DM_Archive * pArchive; 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum { 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodePlugin = 1, 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodePermanent = 2, 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeSkeleton = 4, // fake node for lazy loading 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeOverlayPI = 8, // mount point for Overlay Pi 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeStoresPID = 16, // multinode with Overlay PI data 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeOPISyncNeeded = 32, 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeOPISyncNotNeeded = 64, 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeNoGetAccess = 128, // multinode with Overlay PI data 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeOPISyncUptodate = 256, 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeESN = 512, 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby enum_NodeNotPersisted = enum_NodePlugin | enum_NodeSkeleton | enum_NodeOverlayPI |enum_NodeOPISyncUptodate 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby }; 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby friend class DMTree; 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby friend class SyncML_DM_Archive; 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby friend class DMMetaDataManager; 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby friend class SyncML_PlugIn_WBXMLLog; 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby friend class SyncML_DM_WBXMLWriter; 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMNode(BOOLEAN bPlugin); 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual ~DMNode(); 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //Overloading new and delete operators 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline void* operator new(size_t dwSize) 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (DmAllocMem(dwSize)); 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline void operator delete(void *pvBuf) 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmFreeMem(pvBuf); 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline DMNode *GetParent() {return pcParentOfNode;} 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //The following are Pure virtual functions.Leaf or Interior node 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //Classes deriving from this class MUST implement the functions. 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Add(DMAddData & oAddData) = 0; 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Delete(CPCHAR pbUri) = 0; 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Get(CPCHAR pbUri, DMGetData & oReturnData) = 0; 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Find(CPCHAR pbUri) = 0; 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T SetAddedNode(CPCHAR pbUri) = 0; 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T RemoveAddedNode(CPCHAR pbUri) = 0; 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T GetFormat(CPCHAR pbUri, 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_FORMAT_T * pdwRetPropertyData) = 0; 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T GetSize(CPCHAR pbUri, 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 *pdwRetPropertyData) = 0; 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T GetType(CPCHAR pbUri, 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString& strType) = 0; 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Replace(DMAddData & oReplaceData) = 0; 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Rename(CPCHAR pbUri, CPCHAR psNewNodeName) = 0; 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T Rollback(SYNCML_DM_COMMAND_T bDMCommand, 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CPCHAR pbUri) = 0; 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T GetName(CPCHAR pbUri, DMString& strName); 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T SetName(CPCHAR pbUri, CPCHAR pbNewName); 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T GetTitle(CPCHAR pbUri, DMString& ppbTitle); 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T SetTitle(CPCHAR pbUri, CPCHAR pbNewTitle); 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DM_IGNORE_TSTAMP_AND_VERSION 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual XPL_CLK_CLOCK_T GetTStamp(CPCHAR /*pbUri*/) 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// pbUri = NULL; 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return wTStamp; 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T SetTStamp(CPCHAR pbUri, XPL_CLK_CLOCK_T timeStamp); 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual UINT16 GetVerNo(const char* /*pbUri*/) 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// pbUri = NULL; 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return wVerNo; 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T SetVerNo (CPCHAR pbUri, UINT16 wVerNo); 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // DP: leaf node data access 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual DMBuffer * getData() { return NULL; } 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual const DMBuffer * getData() const { return NULL; } 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // overlay plug-in access 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual DmtOverlayPluginData* getOverlayPIData() { return NULL;} 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual const DmtOverlayPluginData* getOverlayPIData() const { return NULL;} 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual PDMPlugin getOverlayPI() {return PDMPlugin();} 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //-----------Work on THIS NODE ONLY -------------- 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // And should used only by persistence layer etc. 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //More methods implemented in the DMNode class. 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //returns the Format of the node 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline SYNCML_DM_FORMAT_T getFormat() const { return(bFormat);} 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN isPermanent() const {return (m_nFlags & enum_NodePermanent) != 0; } 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN isPlugin() const {return (m_nFlags & enum_NodePlugin) != 0; } 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN IsSkeletonNode() const {return (m_nFlags & enum_NodeSkeleton) != 0; } 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // synchronization state of Overlay PI 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN opiSyncNeeded() const {return (m_nFlags & enum_NodeOPISyncNeeded) != 0; } 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN opiSyncNotNeeded() const {return (m_nFlags & enum_NodeOPISyncNotNeeded) != 0; } 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN opiSyncMayNeeded() const {return (m_nFlags & (enum_NodeOPISyncNeeded |enum_NodeOPISyncNotNeeded)) == 0; } 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN opiInSync() const {return (m_nFlags & enum_NodeOPISyncUptodate) != 0; } 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN IsOverlayPI() const {return (m_nFlags & enum_NodeOverlayPI) != 0; } 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN IsOverlayPIData() const {return (m_nFlags & enum_NodeStoresPID) != 0; } 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual BOOLEAN IsGetAccess(CPCHAR pURI = NULL) const {return (m_nFlags & enum_NodeNoGetAccess) == 0; } 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline UINT16 getFlags() const {return m_nFlags;} 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline void setFlags( UINT16 n ) { m_nFlags = n;} 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline void addFlags( UINT16 n ) { m_nFlags |= n;} 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline CPCHAR getName() const { return abNodeName.c_str(); } 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline CPCHAR getTitle() const { return m_strTitle.c_str();} 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMNode* GetChildByName( const char* szName ) const; 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMNode* GetNextSerializeItem() ; 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby void ConvertPathToSkeleton( DMNode* psStartNode ) ; 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline BOOLEAN IsESN() const {return (m_nFlags & enum_NodeESN) != 0; } 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby virtual SYNCML_DM_RET_STATUS_T IsESN(CPCHAR pbUri, BOOLEAN& bESN); 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby inline void SetESN() { m_nFlags |= enum_NodeESN; } 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby}; 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//------------------------------------------------------------------------ 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif //_DM_TREE_NODE_CLASS_H 233