javamanager/javainstaller/javasifplugin/inc/javasifplugin.h
branchRCL_3
changeset 60 6c158198356e
parent 19 04becd199f91
child 83 26b2b12093af
--- a/javamanager/javainstaller/javasifplugin/inc/javasifplugin.h	Thu Jul 15 18:31:06 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/inc/javasifplugin.h	Thu Aug 19 09:48:13 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 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"
@@ -22,10 +22,13 @@
 #define JAVASIFPLUGIN_H
 
 #include <e32base.h>
+#include <hbdevicenotificationdialogsymbian.h>
 #include <usif/sif/sifplugin.h>
 
+#include "asyncwaitcallback.h"
 #include "f32file.h"
-#include "resultsserver.h"
+
+class ResultsServer;
 
 using namespace Usif;
 
@@ -36,9 +39,9 @@
 const int INSTALLER_CANCEL_MESSAGE_ID = 603;
 const int INSTALLER_CANCEL_RESPONSE_MESSAGE_ID = 604;
 
-namespace Java
+namespace java
 {
-namespace Installer
+namespace installer
 {
 
 /**
@@ -195,6 +198,11 @@
     virtual void CancelOperation();
 
 
+    /**
+     * Hides 'preparing installation' dialog.
+     */
+    void HidePrepInstDialogL();
+
 private:
 
     /**
@@ -221,16 +229,96 @@
      */
     void CopyFilesIfNeededL(TFileName &aFileName);
 
+    /**
+     * Check if the file is Jad file. Argument KSifInParam_MimeType is
+     * used for check if it exists.
+     *
+     * @param[in] aFileHandle the file to be checked
+     * @param[in] aArguments Install request arguments
+     * @param[out] aIsJad set to ETrue if the file is Jad file
+     * @return KErrNone or Symbian error code
+     */
+    TInt IsJadFile(RFile& aFileHandle, const COpaqueNamedParams& aArguments, TBool& aIsJad);
+
+    /**
+     * Check if the file is Jad file.
+     *
+     * @param[in] aFileHandle the file to be checked
+     * @param[out] aIsJad set to ETrue if the file is Jad file
+     * @return KErrNone or Symbian error code
+     */
+    TInt IsJadFile(RFile& aFileHandle, TBool& aIsJad);
+
+    /**
+     * Uses the information in aArguments to create the correct command line for
+     * Java Installer.
+     *
+     * @param[in][out] aCommandLine the buffer to be filled with command line arguments
+     * @param[in]      aArguments The array of opaque params for the plug-in. An empty
+     *   array may be passed.  The following param is defined for the "SCOMO Install
+     *   Inactive" operation:
+     *   Name: InstallInactive, Type: Int, Value: ETrue
+     *   If a plug-in receives this param, it must install a component normally but the SCOMO
+     *   State should remain EDeactivated.
+     */
+    void BuildInstallCommandLine(
+        TPtr& aCommandLine,
+        const COpaqueNamedParams& aArguments);
+
+    /**
+     * Returns the value of int param found from aArguments or -1 if
+     * the param is not found. Must be called only for int params
+     * that have positive value range!
+     *
+     * @param[in] aName The name of the integer param to be obtained.
+     * @param[in] aArguments The array of opaque params for the plug-in.
+     * @return -1 if the named param if not found, otherwise the value of the
+     */
+    TInt GetPositiveIntParam(
+        const TDesC& aName,
+        const COpaqueNamedParams& aArguments);
+
+    /**
+     * Start ResultsServer for receiving Comms message(s) from
+     * Java Installer
+     *
+     * @param[in][out] aResults If Comms message contains installation or
+     *  uninstallation operation results, they will be stored in this variable
+     * @param[in][out] aComponentInfo If Comms message contains contains details of
+     *  a component, they will be stored into this variable
+     * @return
+     */
+    TInt StartResultsServer(
+        COpaqueNamedParams& aResults,
+        CComponentInfo& aComponentInfo);
+
+    /**
+     * If Java Installer is already running, set error category EInstallerBusy etc
+     * to aResults, set aStatus to KErrAlreadyExists and return ETrue
+     * @param[in][out] aResults
+     * @param[in][out] aStatus
+     * @return ETrue if Java Installer is running
+     */
+    TBool ExitIfJavaInstallerRunning(
+        COpaqueNamedParams& aResults,
+        TRequestStatus& aStatus);
+
+    /**
+     * Creates 'preparing installation' dialog.
+     */
+    void CreatePrepInstDialogL();
 
 private: //  Data
 
-    TRequestStatus* iStatus;
-    RFs iRFs;
-    RArray<RProcess> iHandlesToClose;
-    ResultsServer*   iResultsServer;
+    RFs mRFs;
+    RArray<RProcess> mHandlesToClose;
+    ResultsServer*   mResultsServer;
 
-    COpaqueNamedParams* iDummyResults;
-    CComponentInfo*     iDummyInfo;
+    COpaqueNamedParams* mDummyResults;
+    CComponentInfo*     mDummyInfo;
+
+    CHbDeviceNotificationDialogSymbian* mPrepInstDialog;
+    CAsyncWaitCallBack* mWaitToHideDialog;
 };
 
 } // Installer