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