javatools/javacaptain_app/src.s60/javacap.cpp
changeset 35 85266cc22c7f
parent 26 dc7c549001d5
child 40 c6043ea9b06a
child 44 0105bdca6f9c
child 47 f40128debb5d
child 49 35baca0e7a2e
--- a/javatools/javacaptain_app/src.s60/javacap.cpp	Thu May 27 12:49:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,685 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  JavaCap
-*
-*/
-
-
-#include "comms.h"
-#include "rtcmessages.h"
-#include "coremessages.h"
-
-#include "logger.h"
-
-#include "javacap.h"
-#include "javacap.hrh"
-
-#include "javainifileutils.h"
-
-#include <centralrepository.h>
-#include <SWInstallerInternalCRKeys.h>
-
-#include "javastoragenames.h"                   // Storage constants.
-#include "securitystoragedatadefs.h"
-
-#include <javacap.rsg>
-
-_LIT(KJavaCapYes, "Yes");
-_LIT(KJavaCapNo,  "No");
-_LIT(KUserSecurityMode,  "User");
-_LIT(KNormalSecurityMode,  "Default");
-_LIT(KS60SecurityPolicyName,  "S60");
-_LIT(KMSASecurityPolicyName,  "MSA");
-_LIT(KATTSecurityPolicyName,  "AT&T");
-_LIT(KS60SecurityPolicy,  "s60");
-_LIT(KMSASecurityPolicy,  "msa");
-_LIT(KATTSecurityPolicy,  "att");
-// Java Security Policy Central Repository UID
-static const TUid KCRUidJavaSecurity = { 0x2001B289 };
-// IDs for security folder and file keys
-static const TUint32 KPolicy = 0x03;
-static const TUint32 KSecurityWarnings = 0x04;
-const int KS60SecurityPolicyId = 1;
-const int KMSASecurityPolicyId = 2;
-const int KATTSecurityPolicyId = 3;
-
-using namespace java::storage;
-using namespace std;
-using namespace java::util;
-using namespace java::comms;
-using namespace java::captain;
-
-void CJavaCaptainContainer::ConstructL(const TRect& aRect)
-{
-    JELOG2(EJavaCaptain);
-    mCaptainRunning = true;
-    mPrewarmEnabled = false;
-#if defined(RD_JAVA_PREWARM) && !defined (__WINS__)
-    mPrewarmEnabled = true;
-#endif // RD_JAVA_PREWARM
-    mPrewarmUiEnabled = false;
-    mDebugEnabled = false;
-    mRedirectEnabled = false;
-    iStorage.reset(JavaStorage::createInstance());
-    try
-    {
-        iStorage->open();
-    }
-    catch (JavaStorageException& aJse)
-    {
-        User::Leave(aJse.mStatus);
-    }
-    mUserSecurityModeEnabled = (GetSecurityWarningsMode() == SECURITY_WARNINGS_USER_DEFINED_MODE);
-    mSecurityPolicyId = GetSecurityPolicy();
-    mHeader = _L("Java states:");
-    updateStates();
-    CreateWindowL();
-    SetRect(aRect);
-    ActivateL();
-    mRedirector.reset(new LogRedirector());
-}
-
-CJavaCaptainContainer::~CJavaCaptainContainer()
-{
-    JELOG2(EJavaCaptain);
-}
-
-void CJavaCaptainContainer::Draw(const TRect& /*aRect*/) const
-{
-    JELOG2(EJavaCaptain);
-    CWindowGc& gc = SystemGc();
-    gc.Clear();
-
-    const CFont* usedFont = CEikonEnv::Static()->NormalFont();
-    gc.UseFont(usedFont);
-
-    gc.DrawText(mHeader,TPoint(10,20));
-    int pos = 50;
-    gc.DrawText(mCaptainState,TPoint(20,pos));
-    int gap = 25;
-    pos += gap;
-    gc.DrawText(mPrewarmState,TPoint(20,pos));
-    pos += gap;
-    gc.DrawText(mPrewarmUiState,TPoint(20,pos));
-    pos += gap;
-    gc.DrawText(mDebugState,TPoint(20,pos));
-    pos += gap;
-    gc.DrawText(mSecurityMode,TPoint(20,pos));
-    pos += gap;
-    gc.DrawText(mSecurityPolicy,TPoint(20,pos));
-    pos += gap;
-    gc.DrawText(mRedirectState,TPoint(20,pos));
-
-    gc.DiscardFont();
-}
-
-void CJavaCaptainContainer::updateStates()
-{
-
-    int propertyVal = java::util::JavaIniFileUtils::getProperty(java::util::UI_PREWARM);
-    if (propertyVal != -1)
-    {
-        mPrewarmUiEnabled = propertyVal;
-    }
-
-    mCaptainState = _L("Captain running:               ");
-    if (mCaptainRunning)
-    {
-        mCaptainState.Append(KJavaCapYes);
-    }
-    else
-    {
-        mCaptainState.Append(KJavaCapNo);
-    }
-
-    mPrewarmState = _L("Prewarm enabled:           ");
-    if (mPrewarmEnabled)
-    {
-        mPrewarmState.Append(KJavaCapYes);
-    }
-    else
-    {
-        mPrewarmState.Append(KJavaCapNo);
-    }
-
-    mPrewarmUiState = _L("Prewarm UI enabled:      ");
-    if (mPrewarmUiEnabled)
-    {
-        mPrewarmUiState.Append(KJavaCapYes);
-    }
-    else
-    {
-        mPrewarmUiState.Append(KJavaCapNo);
-    }
-
-    mDebugState = _L("Java Debug enabled:      ");
-    if (mDebugEnabled)
-    {
-        mDebugState.Append(KJavaCapYes);
-    }
-    else
-    {
-        mDebugState.Append(KJavaCapNo);
-    }
-
-    mSecurityMode = _L("Security warnings:      ");
-    if (mUserSecurityModeEnabled)
-    {
-        mSecurityMode.Append(KUserSecurityMode);
-    }
-    else
-    {
-        mSecurityMode.Append(KNormalSecurityMode);
-    }
-
-    mSecurityPolicy = _L("Security policy:      ");
-    switch (mSecurityPolicyId)
-    {
-    case KS60SecurityPolicyId:
-        mSecurityPolicy.Append(KS60SecurityPolicyName);
-        break;
-    case KMSASecurityPolicyId:
-        mSecurityPolicy.Append(KMSASecurityPolicyName);
-        break;
-    case KATTSecurityPolicyId:
-        mSecurityPolicy.Append(KATTSecurityPolicyName);
-        break;
-    default:
-        mSecurityPolicy.Append(KS60SecurityPolicyName);
-    }
-
-    mRedirectState = _L("Redirect logs:                   ");
-    if (mRedirectEnabled)
-    {
-        mRedirectState.Append(KJavaCapYes);
-    }
-    else
-    {
-        mRedirectState.Append(KJavaCapNo);
-    }
-
-    DrawDeferred();
-}
-
-void CJavaCaptainContainer::setCaptainState(bool running)
-{
-    mCaptainRunning = running;
-    updateStates();
-}
-
-
-
-#include "commsmessage.h"
-#include "commsclientendpoint.h"
-
-void CJavaCaptainContainer::handleStateChangeCmd(int cmd)
-{
-    switch (cmd)
-    {
-
-    case ETogglePrewarmEnable:
-    {
-        mPrewarmEnabled = !mPrewarmEnabled;
-        CommsMessage message;
-        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
-        if (mPrewarmEnabled)
-        {
-            message.setMessageId(CORE_MSG_ID_START_PREWARM);
-        }
-        else
-        {
-            message.setMessageId(CORE_MSG_ID_STOP_PREWARM);
-        }
-        CommsClientEndpoint comms;
-        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
-        comms.send(message);
-        comms.disconnect();
-        break;
-    }
-    case ETogglePrewarmUiEnable:
-        mPrewarmUiEnabled = !mPrewarmUiEnabled;
-        java::util::JavaIniFileUtils::setProperty(java::util::UI_PREWARM, mPrewarmUiEnabled);
-        break;
-
-    case EDebugMode:
-    {
-        mDebugEnabled = !mDebugEnabled;
-
-        CommsMessage message;
-        std::wstring vmArgs = L"";
-        if (mDebugEnabled)
-        {
-            vmArgs = L"-Xrunjdwp:server=y,address=localhost:8000";
-        }
-        setSetExtraArguments(message, vmArgs, L"");
-
-        CommsClientEndpoint comms;
-        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
-        comms.send(message);
-        comms.disconnect();
-    }
-    break;
-
-    case ESecurityMode:
-    {
-        mUserSecurityModeEnabled = !mUserSecurityModeEnabled;
-
-        if (mUserSecurityModeEnabled)
-        {
-            SetSecurityWarningsMode(SECURITY_WARNINGS_USER_DEFINED_MODE);
-        }
-        else
-        {
-            SetSecurityWarningsMode(SECURITY_WARNINGS_DEFAULT_MODE);
-        }
-    }
-    break;
-    case ES60SecurityPolicy:
-        mSecurityPolicyId = KS60SecurityPolicyId;
-        SetSecurityPolicy(mSecurityPolicyId);
-        break;
-    case EMSASecurityPolicy:
-        mSecurityPolicyId = KMSASecurityPolicyId;
-        SetSecurityPolicy(mSecurityPolicyId);
-        break;
-    case EATTSecurityPolicy:
-        mSecurityPolicyId = KATTSecurityPolicyId;
-        SetSecurityPolicy(mSecurityPolicyId);
-        break;
-
-    case ERedirectMode:
-        mRedirectEnabled = !mRedirectEnabled;
-        if (mRedirectEnabled)
-        {
-            mRedirector->start();
-        }
-        else
-        {
-            mRedirector->stop();
-        }
-        break;
-
-    default:
-        break;
-    }
-    updateStates();
-}
-
-std::wstring CJavaCaptainContainer::GetSecurityWarningsMode()
-{
-    try
-    {
-        JavaStorageApplicationEntry_t query;
-        JavaStorageApplicationList_t queryResult;
-        JavaStorageEntry attr;
-        attr.setEntry(ID, L"");
-        query.insert(attr);
-        attr.setEntry(SECURITY_WARNINGS, L"");
-        query.insert(attr);
-        iStorage->search(MIDP_PACKAGE_TABLE, query, queryResult);
-        JavaStorageApplicationList_t::const_iterator iterator;
-        JavaStorageApplicationList_t domainQueryResult;
-        for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
-        {
-            std::wstring securityWarnings = L"";
-            JavaStorageApplicationEntry_t entry = (*iterator);
-            findColumn(entry, SECURITY_WARNINGS, securityWarnings);
-            if (securityWarnings == SECURITY_WARNINGS_USER_DEFINED_MODE)
-            {
-                // make them all USER
-                SetSecurityWarningsMode(SECURITY_WARNINGS_USER_DEFINED_MODE);
-                return SECURITY_WARNINGS_USER_DEFINED_MODE;
-            }
-        }
-    }
-    catch (JavaStorageException& aJse)
-    {
-    }
-    // one mroe check: central repository
-    std::wstring securityWarningsMode = SECURITY_WARNINGS_DEFAULT_MODE;
-    TRAP_IGNORE(
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        TInt warningsMode;
-        User::LeaveIfError(repository->Get(KSecurityWarnings, warningsMode));
-        switch (warningsMode)
-{
-case 1:
-    securityWarningsMode = SECURITY_WARNINGS_USER_DEFINED_MODE;
-    break;
-case 2:
-    securityWarningsMode = SECURITY_WARNINGS_DEFAULT_MODE;
-    break;
-}
-CleanupStack::PopAndDestroy(repository););
-    return securityWarningsMode;
-}
-
-void CJavaCaptainContainer::SetSecurityWarningsMode(const std::wstring& aSecurityWarningsMode)
-{
-    try
-    {
-        JavaStorageApplicationEntry_t query;
-        JavaStorageApplicationList_t queryResult;
-        JavaStorageEntry attr;
-        attr.setEntry(ID, L"");
-        query.insert(attr);
-        iStorage->search(MIDP_PACKAGE_TABLE, query, queryResult);
-        JavaStorageApplicationList_t::const_iterator iterator;
-        JavaStorageApplicationList_t domainQueryResult;
-        for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
-        {
-            std::wstring uid = L"";
-            JavaStorageApplicationEntry_t entry = (*iterator);
-            findColumn(entry, ID, uid);
-            JavaStorageApplicationEntry_t oldEntry;
-            JavaStorageEntry oldAttr;
-            oldAttr.setEntry(ID, uid);
-            oldEntry.insert(oldAttr);
-            attr.setEntry(SECURITY_WARNINGS, aSecurityWarningsMode);
-            entry.clear();
-            entry.insert(attr);
-            iStorage->update(MIDP_PACKAGE_TABLE, entry, oldEntry);
-        }
-    }
-    catch (JavaStorageException& aJse)
-    {
-    }
-    // set the cenRep key as well
-    TRAP_IGNORE(
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        if (aSecurityWarningsMode == SECURITY_WARNINGS_USER_DEFINED_MODE)
-{
-    repository->Set(KSecurityWarnings, 1);
-    }
-    else
-    {
-        repository->Set(KSecurityWarnings, 2);
-    }
-    CleanupStack::PopAndDestroy(repository);
-    );
-}
-
-void  CJavaCaptainContainer::findColumn(const JavaStorageApplicationEntry_t& aEntry,
-                                        const wstring& aColName, wstring& aColValue)
-{
-    JavaStorageEntry findPattern;
-    findPattern.setEntry(aColName, L"");
-    JavaStorageApplicationEntry_t::const_iterator findIterator =
-        aEntry.find(findPattern);
-    if (findIterator != aEntry.end())
-    {
-        aColValue = findIterator->entryValue();
-    }
-}
-
-
-int CJavaCaptainContainer::GetSecurityPolicy()
-{
-    int securityPolicyId =KS60SecurityPolicyId;
-    TRAP_IGNORE(
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        HBufC* buf = HBufC::NewLC(NCentralRepositoryConstants::KMaxUnicodeStringLength);
-        TPtr policy(buf->Des());
-        User::LeaveIfError(repository->Get(KPolicy, policy));
-        if (policy.Compare(KS60SecurityPolicy) == 0)
-{
-    securityPolicyId = KS60SecurityPolicyId;
-}
-else if (policy.Compare(KMSASecurityPolicy) == 0)
-{
-    securityPolicyId = KMSASecurityPolicyId;
-}
-else if (policy.Compare(KATTSecurityPolicy) == 0)
-{
-    securityPolicyId = KATTSecurityPolicyId;
-}
-CleanupStack::PopAndDestroy(buf);
-CleanupStack::PopAndDestroy(repository););
-    return securityPolicyId;
-}
-
-void CJavaCaptainContainer::SetSecurityPolicy(int aSecurityPolicyId)
-{
-    TRAP_IGNORE(
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        switch (aSecurityPolicyId)
-{
-case KS60SecurityPolicyId:
-    User::LeaveIfError(repository->Set(KPolicy, KS60SecurityPolicy));
-        break;
-    case KMSASecurityPolicyId:
-        User::LeaveIfError(repository->Set(KPolicy, KMSASecurityPolicy));
-        break;
-    case KATTSecurityPolicyId:
-        User::LeaveIfError(repository->Set(KPolicy, KATTSecurityPolicy));
-        break;
-    }
-    CleanupStack::PopAndDestroy(repository););
-}
-
-//
-// CJavaCaptainAppUi
-//
-CJavaCaptainAppUi::~CJavaCaptainAppUi()
-{
-    JELOG2(EJavaCaptain);
-    RemoveFromStack(iAppView);
-    delete iAppView;
-    delete mPeriodic;
-}
-
-void CJavaCaptainAppUi::ConstructL()
-{
-    JELOG2(EJavaCaptain);
-    BaseConstructL();
-    iAppView=new(ELeave) CJavaCaptainContainer;
-    iAppView->SetMopParent(this);
-    iAppView->ConstructL(ClientRect());
-
-    iCoeEnv->RootWin().EnableFocusChangeEvents();
-    mPeriodic=CPeriodic::NewL(CActive::EPriorityStandard);
-
-    AddToStackL(iAppView);
-
-}
-
-_LIT(KExecutableName, "javacaptain.exe");
-
-void senMsgToSplash(int id)
-{
-    CommsMessage message;
-    message.setModuleId(1);
-    message.setMessageId(id);
-    CommsClientEndpoint comms;
-    comms.connect(10900);
-    comms.send(message);
-    comms.disconnect();
-}
-
-TInt CJavaCaptainAppUi::tick(TAny* appUi)
-{
-    CJavaCaptainAppUi* app = static_cast<CJavaCaptainAppUi*>(appUi);
-//    ELOG1(EJavaCaptain,"mActive: %d", app->mActive);
-    if (app->mActive)
-    {
-        senMsgToSplash(1);
-    }
-    else
-    {
-        senMsgToSplash(2);
-    }
-    app->mActive = !app->mActive;
-    return 0;
-}
-
-void CJavaCaptainAppUi::HandleCommandL(TInt aCommand)
-{
-    JELOG2(EJavaCaptain);
-
-    switch (aCommand)
-    {
-    case EAknSoftkeyExit:
-    case EEikCmdExit:
-        Exit();
-        break;
-    case ECaptainStart:
-    {
-        RProcess proc;
-        int st = proc.Create(KExecutableName, KExecutableName);
-        if (st == KErrNone)
-        {
-            proc.Resume();
-            iAppView->setCaptainState(true);
-        }
-        proc.Close();
-    }
-    break;
-
-    case ECaptainStop:
-    {
-        CommsMessage message;
-        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
-        message.setMessageId(CORE_MSG_ID_STOP_JAVACAPTAIN);
-        CommsClientEndpoint comms;
-        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
-        comms.send(message);
-        comms.disconnect();
-        iAppView->setCaptainState(false);
-    }
-    break;
-
-    case EThreadDump:
-    {
-        CommsMessage message;
-        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
-        message.setMessageId(CORE_MSG_ID_DO_THREAD_DUMP);
-        CommsClientEndpoint comms;
-        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
-        comms.send(message);
-        comms.disconnect();
-    }
-    break;
-
-    case ETogglePrewarmEnable:
-    case ETogglePrewarmUiEnable:
-    case EDebugMode:
-    case ESecurityMode:
-    case ES60SecurityPolicy:
-    case EMSASecurityPolicy:
-    case EATTSecurityPolicy:
-    case ERedirectMode:
-        iAppView->handleStateChangeCmd(aCommand);
-        break;
-
-    default:
-        Exit();
-        break;
-    }
-}
-
-CEikAppUi* CJavaCaptainEikDocument::CreateAppUiL()
-{
-    JELOG2(EJavaCaptain);
-    return(new(ELeave) CJavaCaptainAppUi);
-}
-
-void CJavaCaptainEikDocument::ConstructL()
-{
-    JELOG2(EJavaCaptain);
-}
-
-TUid CJavaCaptainApplication::AppDllUid() const
-{
-    JELOG2(EJavaCaptain);
-    return KUidJavaCaptain;
-}
-
-CApaDocument* CJavaCaptainApplication::CreateDocumentL()
-{
-    JELOG2(EJavaCaptain);
-    CJavaCaptainEikDocument* document=new(ELeave) CJavaCaptainEikDocument(*this);
-    CleanupStack::PushL(document);
-    document->ConstructL();
-    CleanupStack::Pop();
-    return(document);
-}
-
-#include <eikstart.h>
-
-LOCAL_C CApaApplication* NewApplication()
-{
-    JELOG2(EJavaCaptain);
-    return new CJavaCaptainApplication;
-}
-
-
-GLDEF_C TInt E32Main()
-{
-    JELOG2(EJavaCaptain);
-    return EikStart::RunApplication(NewApplication);
-}
-
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-LogRedirector::LogRedirector() : mFd(-1)
-{
-    iJavaDiagnostic.reset(JavaDiagnostic::createInstance());
-}
-
-LogRedirector::~LogRedirector()
-{
-}
-
-void LogRedirector::start()
-{
-    iJavaDiagnostic->setDiagnosticListener(*this);
-    mFd = open("c:\\data\\javaredirect.log", O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR);
-}
-
-void LogRedirector::stop()
-{
-    iJavaDiagnostic->removeDiagnosticListener();
-    close(mFd);
-    mFd = -1;
-}
-
-void LogRedirector::systemOut(const TDesC8& aData)
-{
-    write(aData);
-}
-
-void LogRedirector::systemErr(const TDesC8& aData)
-{
-    write(aData);
-}
-
-void LogRedirector::log(const TDesC8& aData)
-{
-    write(aData);
-}
-
-void LogRedirector::write(const TDesC8& aData)
-{
-    if (mFd > 0)
-    {
-        ::write(mFd, (const char*)aData.Ptr(), aData.Size());
-    }
-};
-
-
-
-// End of File