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 "plugin/dmtPlugin.hpp" 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "DmtJavaPluginTree.h" 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "DmtJavaPluginManager.h" 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "DmtJavaPluginCommon.h" 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby// Support exec plugin 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMT_PluginLib_Execute2( 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* pPath, 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMMap<DMString, DMString>& mapParameters, 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* pArgs, 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* pCorrelator, 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtTree pTree, 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMString& results 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby) 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Enter DMT_PluginLib_Execute2...\n"); 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin path = %s\n", pPath); 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby results = ""; 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtJavaPluginManager pJavaPluginManager(new DmtJavaPluginManager(pPath, mapParameters)); 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pJavaPluginManager == NULL) 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Fail to create DmtJavaPluginManager\n"); 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Calling DmtJavaPluginManager::ExecuteNode...\n"); 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retcode = pJavaPluginManager->ExecuteNode(pArgs, pCorrelator, pTree, results); 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginManager::ExecuteNode -> retcode = %d\n", retcode); 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retcode; 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby//Support read write data plugin 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake HambySYNCML_DM_RET_STATUS_T DMT_PluginLib_Data_GetPluginTree( 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby const char* pPath, 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DMMap<DMString, DMString>& mapParameters, 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtAPIPluginTree& pPluginTree 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby) 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Enter DMT_PluginLib_Data_GetPluginTree...\n"); 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Plugin path = %s\n", pPath); 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby PDmtJavaPluginTree pJavaPluginTree = new DmtJavaPluginTree(pPath, mapParameters); 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby if (pJavaPluginTree == NULL) 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby { 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Fail to create DmtJavaPluginTree\n"); 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return SYNCML_DM_FAIL; 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby } 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("Calling DmtJavaPluginTree::BuildPluginTree...\n"); 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SYNCML_DM_RET_STATUS_T retcode = pJavaPluginTree->BuildPluginTree(); 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby DmtJavaPlugin_Debug("DmtJavaPluginManager::BuildPluginTree -> retcode = %d\n", retcode); 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby pPluginTree = (retcode != SYNCML_DM_SUCCESS ? NULL : pJavaPluginTree); 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return retcode; 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyint DMT_PluginLib_GetAPIVersion(void) 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby{ 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby return DMT_PLUGIN_VERSION_1_1; 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 84