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/*================================================================================================== 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Source Name: dmMetaDataNode.cc 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby General Description: Implementation of the DMMetaDataNode class 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby==================================================================================================*/ 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <limits.h> 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dm_uri_utils.h" 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmStringUtil.h" 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmMetaDataNode.h" 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Logger.h" 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::DMMetaDataNode() 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(); 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMConstraints * 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::GetConstraints() const 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_nNumConstraints ) 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return (DMConstraints*)&m_oConstraints; 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return NULL; 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DMMetaDataNode::Init() 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_psName = NULL; 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_szID = NULL; 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_wAccessType = SYNCML_DM_GET_ACCESS_TYPE | SYNCML_DM_EXEC_ACCESS_TYPE; 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nNodeFormat = SYNCML_DM_FORMAT_INVALID; 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nMimeType = SYNCML_DM_DDF_MIME_TYPE_TEXTPLAIN; 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nNumConstraints = 0; 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nMaxChildrenMultiNodes = 0; 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bIsHasMultiChildren = FALSE; 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bIsMultiNode = FALSE; 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bStoresPD = FALSE; 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bPluginNode = FALSE; 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bOPiDataParent = FALSE; 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bESN = FALSE; 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bProgressBarNeeded = FALSE; 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::CheckHasMultiNode(DMMetaDataBuffer oBuffer) 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT16 nodeType; 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.SetOffset(oBuffer.ReadUINT32() + sizeof(UINT32)); 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nodeType = oBuffer.ReadUINT16(); 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( (nodeType & 0x80) == 0x80 ) 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bIsHasMultiChildren = TRUE; 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::Read(DMMetaDataBuffer oBuffer, 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN bReadConstraints) 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status = SYNCML_DM_SUCCESS; 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT16 nodeType; 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(); 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_psName = oBuffer.ReadString(); 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nodeType = oBuffer.ReadUINT16(); 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( (nodeType & nodeMultiNode) == nodeMultiNode) 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bIsMultiNode = TRUE; 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef LOB_SUPPORT 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( (nodeType & nodeESN) == nodeESN) 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bESN = TRUE; 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( (nodeType & nodeProgressBar) == nodeProgressBar) 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bProgressBarNeeded = TRUE; 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nNodeFormat = (UINT8)(nodeType & nodeTypeMask ); 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( (nodeType & nodeHasID) != 0 ) 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_szID = oBuffer.ReadString(); 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bPluginNode = ((nodeType & nodePluginNode) != 0); 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bStoresPD = ((nodeType & nodeStoresPD) != 0); 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_wAccessType = oBuffer.ReadUINT8(); 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nMimeType = oBuffer.ReadUINT8(); 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nNumChildren = oBuffer.ReadUINT16(); 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nOffsetChildren = oBuffer.GetOffset(); 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_nNumChildren == 1 ) 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby CheckHasMultiNode(oBuffer); 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( bReadConstraints ) 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.IncOffset(m_nNumChildren*sizeof(UINT32)); 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nNumConstraints = oBuffer.ReadUINT8(); 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = m_oConstraints.Read(&oBuffer, m_nNumConstraints, nodeType); 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::SetChildrenOffset(DMMetaDataBuffer * pBuffer, 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT8 index) 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( index > m_nNumChildren ) 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pBuffer->SetOffset(m_nOffsetChildren + index*sizeof(UINT32)); 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 offset = pBuffer->ReadUINT32(); 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pBuffer->SetOffset(offset); 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::GetMaxMultiNodeChildren(DMMetaDataBuffer oBuffer) 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status = SYNCML_DM_SUCCESS; 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_bIsHasMultiChildren ) 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.SetOffset(m_nOffsetChildren); 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby UINT32 offset = oBuffer.ReadUINT32(); 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby oBuffer.SetOffset(offset); 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMMetaDataNode oChildren; 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMConstraints * pConstraints = NULL; 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ret_status = oChildren.Read(oBuffer,TRUE); 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( ret_status != SYNCML_DM_SUCCESS ) 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_bOPiDataParent = oChildren.m_bStoresPD; 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pConstraints = oChildren.GetConstraints(); 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( pConstraints ) 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nMaxChildrenMultiNodes = pConstraints->m_nMaxMultiNodes; 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::ReadName(DMMetaDataBuffer oBuffer) 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T ret_status = SYNCML_DM_SUCCESS; 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(); 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_psName = oBuffer.ReadString(); 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ret_status; 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::VerifyAccessType(SYNCML_DM_ACCESS_TYPE_T accessType) const 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby XPL_LOG_DM_TMN_Debug(("DMMetaDataNode::VerifyAccessType: node m_wAccesstype is:%x, passed accessType is %x\n", m_wAccessType,accessType)); 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ( (m_wAccessType & accessType) == accessType ); 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN DMMetaDataNode::VerifyMimeType(CPCHAR mimeType) const 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DMMetaDataNode::GetMimeType(DMString & strType) 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby strType = "text/plain"; 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DMMetaDataNode::SetAccessType(SYNCML_DM_ACCESS_TYPE_T accessType) 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_wAccessType = accessType; 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN DMMetaDataNode::IsLocal() 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ( (m_wAccessType & SYNCML_DM_LOCAL_ACCESS_TYPE) == SYNCML_DM_LOCAL_ACCESS_TYPE ); 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN DMMetaDataNode::IsLeaf() 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_nNodeFormat != SYNCML_DM_FORMAT_NODE && 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_nNodeFormat != SYNCML_DM_FORMAT_NODE_PDATA ) 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return FALSE; 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMMetaDataNode::SetPath(CPCHAR szPath) 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_oPath.assign(szPath) == NULL ) 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMMetaDataNode::AllocatePath(UINT32 size) 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_oPath.allocate(size) == NULL ) 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_DEVICE_FULL; 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SetPath("."); 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMMetaDataNode::AppendSegment() 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_oPath.append((UINT8*)"/", 1); 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_oPath.append((UINT8*)m_psName,DmStrlen(m_psName)); 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::VerifyChildrenMultiNodesCount(UINT16 count, 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby BOOLEAN& bOPiDataParent ) const 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby bOPiDataParent = m_bOPiDataParent; 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if ( m_nMaxChildrenMultiNodes > 0 ) 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return ( (count < m_nMaxChildrenMultiNodes) ); 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby else 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return TRUE; 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMetaDataNode::VerifyOPINode( CPCHAR& szID, 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_ACCESS_TYPE_T& wAccessType, 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_FORMAT_T& nNodeFormat ) const 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby szID = m_szID; 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby wAccessType = m_wAccessType; 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby nNodeFormat = m_nNodeFormat; 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return m_bPluginNode; 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 273