--- a/javamanager/javainstaller/javasifplugin/src/resultsserver.cpp Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/src/resultsserver.cpp Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
@@ -11,18 +11,14 @@
*
* Contributors:
*
-* Description: Comms server, part of Java Sif plugin.
-* When started in 'commsresult' mode from Java Sif plugin
-* Java Installer sends the results of the operation
-* it executes (install, uninstall or component info)
-* to this server.
+* Description: Comms server,
+* part of Java platform 2.0 javarestoreconverter process
*
*/
#include <iostream>
#include <unistd.h>
-#include <usif/usiferror.h>
#include "comms.h"
#include "javasymbianoslayer.h"
@@ -33,7 +29,7 @@
using namespace std;
ResultsServer::ResultsServer(COpaqueNamedParams& aResults, CComponentInfo& aInfo) :
- mResults(aResults), mInfo(aInfo)
+ iResults(aResults), iInfo(aInfo)
{
}
@@ -48,43 +44,23 @@
int ResultsServer::start()
{
- // Write reasonable error codes to mResults that can be used if
- // Java Installer never returns InstallerResultMessage.
- // If InstallerResultMessage is received the values will be overwritten.
- TRAPD(err, mResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::start mResults.AddIntL ErrCategory err %d", err);
- }
-
- TRAP(err, mResults.AddIntL(KSifOutParam_ErrCode, KErrUnknown));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::start mResults.AddIntL ErrCode err %d", err);
- }
-
- TRAP(err, mResults.AddIntL(KSifOutParam_ExtendedErrCode, 0));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::start mResults.AddIntL ExtendedErrCode err %d", err);
- }
-
- // TODO: return also localized error message (KSifOutParam_ErrMessage and
- // perhaps also KSifOutParam_ErrMessageDetails) from usif
- // common localization file after the localized strings are available
-
-
- mComms.registerDefaultListener(this);
- return mComms.start(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+ iRunning = 1;
+ iComms.registerDefaultListener(this);
+ return iComms.start(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
}
int ResultsServer::stop()
{
- mComms.unregisterDefaultListener(this);
- return mComms.stop();
+ if (iRunning > 0)
+ {
+ iRunning = 0;
+ iComms.unregisterDefaultListener(this);
+ return iComms.stop();
+ }
+ else
+ {
+ return 0;
+ }
}
/**
@@ -141,8 +117,66 @@
if (KErrNone != result)
{
- // return common error information;
- setCommonErrorInfo();
+ // return common error information
+ TRAP(err, iResults.AddIntL(KSifOutParam_ExtendedErrCode, result));
+ if (KErrNone != err)
+ {
+ ELOG1(EJavaInstaller,
+ "ResultsServer::processMessage iResults.AddIntL ExtendedErrCode err %d",
+ err);
+ }
+
+ TRAP(err, iResults.AddIntL(KSifOutParam_ErrCode, result));
+ if (KErrNone != err)
+ {
+ ELOG1(EJavaInstaller,
+ "ResultsServer::processMessage iResults.AddIntL ErrCode err %d", err);
+ }
+
+ TRAP(err, iResults.AddIntL(
+ KSifOutParam_ErrCategory, iIntPairs[L"error-category"]));
+ if (KErrNone != err)
+ {
+ ELOG1(EJavaInstaller,
+ "ResultsServer::processMessage iResults.AddIntL ErrCategory err %d",
+ err);
+ }
+
+ HBufC *message = wstringToBuf(iStringPairs[L"error-message"]);
+ if (message == NULL)
+ {
+ ELOG(EJavaInstaller,
+ "ResultsServer::processMessage iResults.wstringToBuf returned NULL ");
+ }
+ else
+ {
+ TRAP(err, iResults.AddStringL(KSifOutParam_ErrMessage, *message));
+ if (KErrNone != err)
+ {
+ ELOG1(EJavaInstaller,
+ "ResultsServer::processMessage iResults.AddStringL ErrMessage err %d",
+ err);
+ }
+ delete message;
+ }
+
+ message = wstringToBuf(iStringPairs[L"error-details"]);
+ if (message == NULL)
+ {
+ ELOG(EJavaInstaller,
+ "ResultsServer::processMessage iResults.wstringToBuf 2 returned NULL ");
+ }
+ else
+ {
+ TRAP(err, iResults.AddStringL(KSifOutParam_ErrMessageDetails, *message));
+ if (KErrNone != err)
+ {
+ ELOG1(EJavaInstaller,
+ "ResultsServer::processMessage iResults.AddStringL ErrMessageDetails "
+ "err %d", err);
+ }
+ delete message;
+ }
if (INSTALL_OPERATION == operation)
{
@@ -163,21 +197,17 @@
}
else
{
- // Operation succeeded
-
- // Overwrite (reset) the default error values set for the case where no
- // InstallerResultMessage is never received
- resetDefaultErrorValues();
+ // operation succeeded
if (INSTALL_OPERATION == operation)
{
// Return the component ids of the installed Java application.
TComponentId resultComponentId = iIntPairs[L"suite-cid"];
- TRAP(err, mResults.AddIntL(KSifOutParam_ComponentId, resultComponentId));
+ TRAP(err, iResults.AddIntL(KSifOutParam_ComponentId, resultComponentId));
if (KErrNone != err)
{
ELOG1(EJavaInstaller,
- "ResultsServer::processMessage mResults.AddIntL cid error %d", err);
+ "ResultsServer::processMessage iResults.AddIntL cid error %d", err);
}
}
else if (UNINSTALL_OPERATION == operation)
@@ -209,7 +239,7 @@
reply.setMessageId(INSTALLER_RESULT_RESPONSE_MESSAGE_ID);
reply << 0;
- int err = mComms.send(reply);
+ int err = iComms.send(reply);
if (err != 0)
{
ELOG1(EJavaInstaller,
@@ -232,95 +262,6 @@
}
-/**
- * Set common error information.
- * Note that the information is in member variables
- * iIntPairs and iStringPairs
- */
-void ResultsServer::setCommonErrorInfo()
-{
- // return common error information
- TRAPD(err, mResults.AddIntL(KSifOutParam_ErrCode, iIntPairs[L"error-code"]));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::setCommonErrorInfo mResults.AddIntL ErrCode err %d", err);
- }
-
- TRAP(err, mResults.AddIntL(
- KSifOutParam_ErrCategory, iIntPairs[L"error-category"]));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::setCommonErrorInfo mResults.AddIntL ErrCategory err %d",
- err);
- }
-
- HBufC *message = wstringToBuf(iStringPairs[L"error-message"]);
- if (!message)
- {
- ELOG(EJavaInstaller,
- "ResultsServer::setCommonErrorInfo mResults.wstringToBuf returned NULL ");
- }
- else
- {
- TRAP(err, mResults.AddStringL(KSifOutParam_ErrMessage, *message));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::setCommonErrorInfo mResults.AddStringL ErrMessage err %d",
- err);
- }
- delete message;
- }
-
- message = wstringToBuf(iStringPairs[L"error-details"]);
- if (!message)
- {
- ELOG(EJavaInstaller,
- "ResultsServer::setCommonErrorInfo mResults.wstringToBuf 2 returned NULL ");
- }
- else
- {
- TRAP(err, mResults.AddStringL(KSifOutParam_ErrMessageDetails, *message));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::setCommonErrorInfo mResults.AddStringL ErrMessageDetails "
- "err %d", err);
- }
- delete message;
- }
-}
-
-
-/**
- * Overwrite (reset) the default error values to 'no error'.
- * The default error values were originally set for the case
- * where no InstallerResultMessage is never received and we must
- * return sensible error information.
- */
-void ResultsServer::resetDefaultErrorValues()
-{
- TRAPD(err, mResults.AddIntL(KSifOutParam_ErrCategory, 0));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::resetDefaultErrorValues mResults.AddIntL ErrCategory err %d", err);
- }
-
- TRAP(err, mResults.AddIntL(KSifOutParam_ErrCode, 0));
- if (KErrNone != err)
- {
- ELOG1(EJavaInstaller,
- "ResultsServer::resetDefaultErrorValues mResults.AddIntL ErrCode err %d", err);
- }
-
- // TODO: reset also localized error message KSifOutParam_ErrMessage and
- // perhaps also KSifOutParam_ErrMessageDetails if they have been set in start()
-}
-
-
void ResultsServer::clearData()
{
iIntPairs.clear();
@@ -359,7 +300,7 @@
ss >> midletUidN;
//LOG1WSTR(EJavaInstaller, EInfo,
- // "ResultsServer::processMessage: checking %S", midletUidN.c_str());
+ // "ResultsServer::processMessage: checking %s", midletUidN.c_str());
int uid = iIntPairs[midletUidN];
if (uid == 0)
@@ -385,8 +326,8 @@
CleanupStack::Pop(applicationInfo);
n++;
- } // sanity check: no suite can have 10000 midlets
- while (n < 10000); // codescanner::magicnumbers
+ }
+ while (n < 10000); // sanity check: no suite can have 10000 midlets
CComponentInfo::CNode *rootNode = NULL;
rootNode = CComponentInfo::CNode::NewLC(
@@ -407,7 +348,7 @@
);
// Store whole component info tree
- mInfo.SetRootNodeL(rootNode);
+ iInfo.SetRootNodeL(rootNode);
CleanupStack::Pop(rootNode);
CleanupStack::PopAndDestroy(&applications);
}