javamanager/debugapi/src.s60/javadebugapi.cpp
changeset 21 2a9601315dfc
equal deleted inserted replaced
18:e8e63152f320 21:2a9601315dfc
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Debug API implementation.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <string>
       
    20 #include <list>
       
    21 #include <unistd.h>
       
    22 
       
    23 #include "javadebugapi.h"
       
    24 #include "javaoslayer.h"
       
    25 
       
    26 #include "logger.h"
       
    27 #include "javasymbianoslayer.h"
       
    28 #include "javauid.h"
       
    29 #include "debugapiimpl.h"
       
    30 
       
    31 using java::util::Uid;
       
    32 
       
    33 OS_EXPORT
       
    34 TBool java::debug::installApp(HBufC& aFilename,
       
    35                               TUid& aSuiteUid,
       
    36                               RArray<TUid>& aApplicationUid)
       
    37 {
       
    38     LOG1(EDebugApi, EInfo, "-->%s", __PRETTY_FUNCTION__);
       
    39 
       
    40     aSuiteUid = TUid::Null();
       
    41     aApplicationUid.Reset();
       
    42 
       
    43     TPtr16 filePtr(aFilename.Des());
       
    44     std::wstring filename(desToWstring(filePtr));
       
    45     Uid suiteUid;
       
    46     std::list<Uid> appUids;
       
    47 
       
    48     DebugApiImpl debug;
       
    49     int rc = debug.installApp(filename, suiteUid, appUids);
       
    50     if (!rc)
       
    51     {
       
    52         rc =  uidToTUid(suiteUid, aSuiteUid);
       
    53 
       
    54         for (std::list<Uid>::iterator iter = appUids.begin();
       
    55                 iter != appUids.end() && rc == KErrNone;
       
    56                 ++iter)
       
    57         {
       
    58             TUid uid;
       
    59             rc = uidToTUid((*iter), uid);
       
    60             if (rc == KErrNone)
       
    61             {
       
    62                 rc = aApplicationUid.Append(uid);
       
    63             }
       
    64         }
       
    65     }
       
    66 
       
    67     if (rc)
       
    68     {
       
    69         ELOG2(EDebugApi, "installApp() failed: file=%S, err=%d", filename.c_str(), rc);
       
    70         return EFalse;
       
    71     }
       
    72 
       
    73     LOG1(EDebugApi, EInfo, "<--%s", __PRETTY_FUNCTION__);
       
    74     return ETrue;
       
    75 }
       
    76 
       
    77 
       
    78 OS_EXPORT
       
    79 TBool java::debug::uninstallApp(TUid aSuiteUid)
       
    80 {
       
    81     LOG1(EDebugApi, EInfo, "-->%s", __PRETTY_FUNCTION__);
       
    82 
       
    83     Uid suiteUid;
       
    84     TUidToUid(aSuiteUid, suiteUid);
       
    85     DebugApiImpl debug;
       
    86     int rc = debug.uninstallApp(suiteUid);
       
    87     if (rc)
       
    88     {
       
    89         ELOG2(EDebugApi, "uninstallApp() failed: uid=%S, err=%d", suiteUid.toString().c_str(), rc);
       
    90         return EFalse;
       
    91     }
       
    92 
       
    93     LOG1(EDebugApi, EInfo, "<--%s", __PRETTY_FUNCTION__);
       
    94     return ETrue;
       
    95 }
       
    96 
       
    97 
       
    98 OS_EXPORT
       
    99 TBool java::debug::startApp(TUid aApplicationUid, HBufC& aUeiParameters, TProcessId& aProcessId)
       
   100 {
       
   101     LOG1(EDebugApi, EInfo, "-->%s", __PRETTY_FUNCTION__);
       
   102 
       
   103     Uid appUid;
       
   104     TUidToUid(aApplicationUid, appUid);
       
   105     TPtr16 ueiPtr(aUeiParameters.Des());
       
   106     std::wstring cmdLineOpts(desToWstring(ueiPtr));
       
   107 
       
   108     DebugApiImpl debug;
       
   109     pid_t pid = 0;
       
   110     int rc = debug.startApp(appUid, cmdLineOpts, pid);
       
   111     aProcessId = pid;
       
   112     if (rc)
       
   113     {
       
   114         ELOG3(EDebugApi, "startApp() failed: uid=%S, cmdLineOpts=%S err=%d",
       
   115               appUid.toString().c_str(), cmdLineOpts.c_str(), rc);
       
   116         return EFalse;
       
   117     }
       
   118 
       
   119     LOG1(EDebugApi, EInfo, "<--%s", __PRETTY_FUNCTION__);
       
   120     return ETrue;
       
   121 }
       
   122 
       
   123 
       
   124 OS_EXPORT
       
   125 TBool java::debug::stopApp(TUid aApplicationUid)
       
   126 {
       
   127     LOG1(EDebugApi, EInfo, "-->%s", __PRETTY_FUNCTION__);
       
   128 
       
   129     Uid uid;
       
   130     TUidToUid(aApplicationUid, uid);
       
   131 
       
   132     DebugApiImpl debug;
       
   133     int rc = debug.stopApp(uid);
       
   134     if (rc)
       
   135     {
       
   136         ELOG2(EDebugApi, "stopApp() failed: uid=%S, err=%d", uid.toString().c_str(), rc);
       
   137         return EFalse;
       
   138     }
       
   139 
       
   140     LOG1(EDebugApi, EInfo, "<--%s", __PRETTY_FUNCTION__);
       
   141     return ETrue;
       
   142 }