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#include "DmtJavaPluginTree.h" 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "DmtJavaPluginNode.h" 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "DmtJavaPluginManager.h" 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "DmtJavaPluginCommon.h" 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDmtJavaPluginTree::DmtJavaPluginTree(const char* rootPath, DMMap<DMString, DMString>& mapParameters) 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby : DmtRWPluginTree(), mIsAtomic(FALSE) 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree constructor...\n"); 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Init(rootPath); 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Finish init rootPath, and begin create new instance of DmtJavaPluginManager..\n"); 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_pluginManager = new DmtJavaPluginManager(rootPath, mapParameters); 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Finish create new instance of DmtJavaPluginManager..\n"); 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_parameters = mapParameters; 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDmtJavaPluginTree::~DmtJavaPluginTree() 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_pluginManager = NULL; 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_parameters.clear(); 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::DeleteNode(const char* path) 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::DeleteNode, path = %s\n", path); 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = DmtRWPluginTree::DeleteNode(path); 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginTree::DeleteNode: DmtRWPluginTree::DeleteNode res = %d\n", res); 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (res == SYNCML_DM_SUCCESS) 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby res = m_pluginManager->DeleteNode(path); 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::DeleteNode, res = %d\n", res); 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::CreateInteriorNode(const char* path, PDmtNode& ptrCreatedNode) 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::CreateInteriorNode, path = %s \n", path); 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = DmtRWPluginTree::CreateInteriorNode(path, ptrCreatedNode); 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::CreateInteriorNode, res = %d\n", res); 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::CreateInteriorNodeInternal(const char* path, 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtNode& ptrCreatedNode, 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const DMStringVector& childNodeNames) 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::CreateInteriorNodeInternal, path = %s\n", path); 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = m_pluginManager->CreateInteriorNode(path); 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (res == SYNCML_DM_SUCCESS) 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtJavaPluginNode pNode = new DmtJavaPluginNode(this, path, childNodeNames); 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby res = this->SetNode(path, static_cast<PDmtNode>(pNode)); 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (res != SYNCML_DM_SUCCESS) 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_pluginManager->DeleteNode(path); 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ptrCreatedNode = pNode; 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::CreateInteriorNodeInternal, path = %s\n", path); 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::CreateLeafNode(const char* path, PDmtNode& ptrCreatedNode, const DmtData& value) 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::CreateLeafNode, path = %s\n", path); 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = DmtRWPluginTree::CreateLeafNode(path, ptrCreatedNode, value); 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::CreateLeafNode, res = %d\n", res); 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::CreateLeafNode(const char* path, PDmtNode& ptrCreatedNode, const DmtData& value, BOOLEAN isESN) 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::CreateLeafNode, path = %s\n", path); 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 1123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 1143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = DmtRWPluginTree::CreateLeafNode(path, ptrCreatedNode, value, isESN); 1183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::CreateLeafNode, res = %d\n", res); 1193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 1203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::CreateLeafNodeInternal(const char* path, PDmtNode& ptrCreatedNode, const DmtData& value) 1233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::CreateLeafNodeInternal, path = %s\n", path); 1253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = m_pluginManager->CreateLeafNode(path, value); 1273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (res == SYNCML_DM_SUCCESS) 1283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtJavaPluginNode pNode = new DmtJavaPluginNode(this, path, value); 1303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby res = this->SetNode(path, static_cast<PDmtNode>(pNode)); 1313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (res != SYNCML_DM_SUCCESS) 1323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby m_pluginManager->DeleteNode(path); 1343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby ptrCreatedNode = pNode; 1363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::CreateLeafNodeInternal, path = %s\n", path); 1383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 1393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::CreateLeafNodeInternal(const char* path, PDmtNode& ptrCreatedNode, const DmtData& value, BOOLEAN isESN) 1423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::CreateLeafNodeInternal, path = %s, isESN = %d\n", path, isESN); 1443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return CreateLeafNodeInternal(path, ptrCreatedNode, value); 1453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::RenameNode(const char* path, const char* szNewNodeName) 1483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::RenameNode, path = %s\n", path); 1503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 1523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 1543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // This method is not supported by DmtPluginTree so we don't call java plug-in 1583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // SYNCML_DM_RET_STATUS_T res = m_pluginManager->RenameNode(path, szNewNodeName); 1593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FEATURE_NOT_SUPPORTED; 1603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::GetNode(const char* szPath, PDmtNode& ptrNode) 1633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (!szPath) 1653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby szPath = ""; 1673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginTree::GetNode(%s)\n", szPath); 1693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DmtPluginTree::GetNode(szPath, ptrNode); 1703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::BuildPluginTree() 1733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::BuildPluginTree\n"); 1753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 1763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 1773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 1783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 1793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 1803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = m_pluginManager->BuildPluginTree(this); 1823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::BuildPluginTree, res = %d\n", res); 1833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 1843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMMap<DMString, DMString>& DmtJavaPluginTree::GetParameters() 1873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return m_parameters; 1893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyDMString& DmtJavaPluginTree::GetRootPath() 1923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return m_strRootPath; 1943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 1953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::GetNodeValueInternal(const char* path, DmtData& value) 1973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 1983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::GetNodeValueInternal, path = %s\n", path); 1993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 2003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 2023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 2033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = m_pluginManager->GetNodeValue(path, value); 2063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::GetNodeValueInternal, res = %d\n", res); 2073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 2083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::SetNodeValueInternal(const char* path, const DmtData& value) 2113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::SetNodeValueInternal, path = %s\n", path); 2133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 2143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 2163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 2173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = m_pluginManager->SetNodeValue(path, value); 2203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::SetNodeValueInternal, res = %d\n", res); 2213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 2223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambyBOOLEAN DmtJavaPluginTree::IsAtomic() 2253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginTree::IsAtomic\n"); 2273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return mIsAtomic; 2283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::Flush() 2313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::Flush\n"); 2333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //TODO: Workaround. Commit will be called by engine in any case. 2353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby Commit(); 2363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby // ehb005:should not set this NULL because tree could be accessed again after flush 2383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby //m_pluginManager = NULL; 2393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = DmtRWPluginTree::Flush(); 2413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::Flush, res = %d\n", res); 2433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 2453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::Commit() 2483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Inside: DmtJavaPluginTree::Commit\n"); 2503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (m_pluginManager == NULL) 2513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 2523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin manager is not created\n"); 2533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 2543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 2553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mIsAtomic = FALSE; 2573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T res = m_pluginManager->Commit(); 2593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Leave: DmtJavaPluginTree::Commit, res = %d\n", res); 2603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return res; 2613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::Begin() 2643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginTree::Begin\n"); 2663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mIsAtomic = TRUE; 2673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_SUCCESS; 2683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 2693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 2703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DmtJavaPluginTree::Rollback() 2713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 2723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginTree::Rollback\n"); 2733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby mIsAtomic = FALSE; 2743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FEATURE_NOT_SUPPORTED; 2753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 276