applicationmanagement/server/inc/ApplicationManagementServer.h
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/applicationmanagement/server/inc/ApplicationManagementServer.h	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,448 +0,0 @@
-/*
- * Copyright (c) 2000 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: Implementation of applicationmanagement components
- *
- */
-
-#ifndef __APPLICATIONMANAGEMENTSERVER_H__
-#define __APPLICATIONMANAGEMENTSERVER_H__
-
-// INCLUDES
-#include <SyncMLClient.h>
-#include <e32base.h>
-#include <centralrepository.h>
-#include <SWInstApi.h>
-#include <ssl.h>
-#include <swi/launcher.h>
-#include <swi/sisregistrysession.h>
-#include <swi/sisregistrypackage.h>
-#include <swi/sisregistryentry.h>
-#include <DownloadMgrClient.h>
-
-#include "ApplicationManagementClientServer.h"
-#include "PlatformSecurityPolicies.h"
-#include "AMDeploymentComponent.h"
-#include "amstorage.h"
-#include "ApplicationManagementUtility.h"
-#include "AMDownloaddb.h"
-
-#include "AMDownloadManager.h"
-// CONSTANTS
-const TInt KBase64BufSize = 131072;
-class CAppMgmtSrvApp;
-
-namespace NApplicationManagement
-    {
-
-    // -----------------------------------------------------------
-    // ApplicationManagement server panic codes
-    // -----------------------------------------------------------
-    enum TApplicationManagementPanic
-        {
-        EPanicGeneral,
-        EBadSubsessionHandle,
-        EPanicIllegalFunction,
-        EBadDescriptor
-        };
-
-    // FUNCTION PROTOTYPES
-
-    void PanicClient(const RMessagePtr2& aMessage,
-            TApplicationManagementPanic aPanic);
-
-    // CLASS DECLARATION     
-    class CShutdown : public CTimer
-        {
-        enum
-            {
-            KApplicationManagementShutdownDelay = 0x3000000 // approx 30s
-            };
-public:
-        inline CShutdown();
-        inline void ConstructL();
-        inline void Start();
-	inline void Stop();
-private:
-        void RunL();
-        };
-
-    /**
-     *  CApplicationManagementServer 
-     *  Description.
-     */
-
-    class CApplicationManagementServer : public CAknAppServer,
-        public MDownloadMngrObserver
-        {
-public:
-        static CApplicationManagementServer* NewL();
-        ~CApplicationManagementServer();
-
-        void Panic(TInt aPanicCode);
-        void AddSession();
-        void DropSession();
-
-        CPolicyServer::TCustomResult CreateServiceSecurityCheckL(
-                TUid aServiceType, const RMessage2& aMsg, TInt& aAction,
-                TSecurityInfo& aMissing);
-private:
-
-        CApplicationManagementServer();
-        virtual void ConstructL(const TDesC &aServerName);
-        /*CSession2* NewSessionL(const TVersion& aVersion, 
-         const RMessage2& aMessage) const;*/
-
-        //From CPolicyServer
-        CPolicyServer::TCustomResult
-                CustomSecurityCheckL(const RMessage2& aMsg, TInt& aAction,
-                        TSecurityInfo& aMissing);
-
-        // browses sis registry
-        void LookupSisRegistryL();
-
-        //New methods	
-        void DownloadCompleteL(CDeploymentComponent *aComponent, TInt iapid,
-                HBufC8* aServerId);
-
-        void InstallCompleteL(const CDeploymentComponent &aCompo,
-                const TBool &aInstallSuccess=ETrue);
-                
-        TInt GetErrorStatus(TInt aErrorDownload, TInt aErrorInstall);
-        
-        void EnableDMNetworkMonL(TInt iapid, HBufC8 *aServerId);
-
-public:
-
-        /**
-         * 	Storage Returns the storage
-         * @return The storage pointer
-         */
-        inline CDeliveryComponentStorage *Storage()
-            {
-            return iStorage;
-            }
-
-        /**
-         * UninstallL Uninstalls the given deployment component.
-         * @param aComponent The component to be uninstalled
-         * @param aStatus TRequestStatus of the call
-         */
-        void UninstallL(const CDeploymentComponent &aComponent,
-                TRequestStatus &aStatus);
-
-        void AddDownloadL(CDeploymentComponent *aComponent);
-
-        void PerformRFSL();
-        void RemoveInternalL(const CDeploymentComponent &aCompo,
-                TBool aDoUninstall = ETrue);
-
-        TBool CheckCertL(const TCertInfo &aInfo) const;
-        void DoTheInstallL(CDeploymentComponent &aCompo);
-
-        void GetAMServerDownloadDBL(TUint32 internalid, TInt& finalresult,
-                TDes8& atargetURI);
-                
-        TBool IsOMASCOMOEnabledL();
-
-        /**
-         * JavaUidsL Returns java uids.
-         * @param aUids the array to hold uids
-         */
-        void JavaUidsL(RArray<TUid> &aUids) const;
-
-        /**
-         * FullUpdateL updates target with source
-         * @param sid Source deployment component id
-         * @param tid Target deployment component id
-         */
-        void FullUpdateL(const TUint32 sid, const TUint32 tid);
-
-        /**
-         * SetDataL sets data to deployment component and checks possible uid overlaps
-         * @param aCompo deployment component where data is set
-         * @param aData new data to be set
-         * @param aMime mimetype of the new data to be set
-         */
-        void SetDataL(CDeploymentComponent &aCompo, const TDesC8 &aData,
-                const TDesC8 &aMime);
-        /**
-         * Checks of data in file is Base64 decoded.
-         * @param aFile file to be checked if data is encoded
-         * @param aLength data length in file
-         * @return ETrue if given data in file is Base64 encoded
-         */
-        TBool IsDataFileB64EncodedL(RFile &aFile, TInt& aLength);
-
-        /**
-         * Checks of data is Base64 decoded.
-         * @param aData data to be checked for encoding
-         * @return ETrue if given data is Base64 encoded
-         */
-        TBool CheckB64Encode(const TDesC8& aData);
-
-        /**
-         * B64 Decodes data in aData and return decoded data
-         * @param aSourceFile file containing decoded data
-         * @param aDestinationFile file where to decode data
-         */
-        void DecodeB64DataFileL(RFile& aSourceFile, RFile& aDestinationFile);
-
-        /**
-         * B64 Decodes data in aData and return decoded data
-         * @param aData decoded data
-         * @return Decoded data
-         */
-        HBufC8* DecodeB64DataLC(const TDesC8 &aData);
-
-        /**
-         * B64 Encodes data in aData to aTarget
-         * @param aData data which is encoded
-         * @param aTarget encoded data buffer
-         */
-        void EncodeDataL(const TDesC8& aData, CBufBase &aTarget);
-        void HandleAllClientsClosed();
-
-        void DeleteGenericAlertForIDL(TUint32 internalid);
-        void CheckforDuplicateMidletsL(TMidletParameters& amidletParameters);
-
-public:
-        // from MDownloadMngrObserver
-
-        /**
-         * 
-         * @param aComponent 
-         * @param aStatus 
-         */
-        void ComponentDownloadComplete(CDeploymentComponent *aComponent,
-                TInt iapid, HBufC8 *aServerId);
-
-        /**
-         * Looks all deployments components and sis & java registries
-         * to find out whether given uid is already used...
-         * @param aUid The uid to be looked for
-         * @return ETrue if uid is found, EFalse otherwise
-         */
-        TBool HasUidL(const TUid &aUid, CDeploymentComponent *& aCompo,
-                CDeploymentComponent *aIgnored);
-
-        void ComponentDownloadFailed(CDeploymentComponent *aComponent,
-                TInt aReason);
-
-        void StartShutDownTimerL();
-
-        void SendServerToBackground();
-
-        void BringServertoForeground();
-
-        void BringDMUItoForeground();
-        TBool IsInstalledAppRemovableL(TDriveNumber &iDrive);
-
-private:
-
-        /**
-         * FullUpdateL updates target with source
-         * @param sid Source deployment component 
-         * @param tid Target deployment component 
-         */
-        void FullUpdateL(CDeploymentComponent &scompo,
-                const CDeploymentComponent &tcompo);
-
-        /**
-         * InstallL Installs the given deployment component. Async version.
-         * @param aComponent The component to be installed
-         * @param aStatus TRequestStatus of the call
-         */
-        void InstallL(const CDeploymentComponent &aComponent,
-                TRequestStatus &aStatus);
-        /**
-         * InstallL Installs the given deployment component. Syncronized version.
-         * @param aComponent The component to be installed
-         */
-        void InstallL(const CDeploymentComponent &aComponent);
-
-        /**
-         * PrepareInstallL Prepares install of given component.
-         * @param aComponent The component to be installed
-         * @param aFileName	If call is successful, will contain 
-         * the name of file ready to be installed
-         * @return ETrue if preparation is successful, EFalse otherwise
-         */
-        TBool PrepareInstallL(const CDeploymentComponent &aComponent,
-                TFileName &aFileName);
-
-        /**
-         * Finds whether the given uid is found in sis or java registry.
-         * Searches first sis registry and uses FindJavaUidL if not found
-         */
-        TBool FindInstalledSisUidL(const TUid &aUid) const;
-
-        /**
-         * Finds whether the given uid is found in java registry
-         */
-        TBool FindInstalledJavaUidL(const TUid &aUid) const;
-        void SetSisAppVersionAndDriveL(CDeploymentComponent &aCompo);
-        void JavaInstallL(CDeploymentComponent &aCompo);
-        void SisInstallL(const CDeploymentComponent &aCompo);
-        TUid FindNewUid(const RArray<TUid> &aUidsOrig,
-                const RArray<TUid> &aUidsNew) const;
-
-        /**
-         * Reads Jar file name from Jad file
-         * @param aFile file handle for Jad file where to find Jar filename
-         * @return aFileName	If call is successful, will contain the name of file ready to be installed
-         */
-        TFileName ReadJarFileNameL(RFile& aFile) const;
-
-        /**
-         * Reads line of data from file.
-         * @param aStream stream handle where to read data
-         * @param aLineBuffer buffer where function appends read data for line. Return a full line at time.
-         */
-        void ReadLineL(RReadStream& aStream, TDes8& aLineBuffer) const;
-
-        /**
-         * DoDataUpdateCheck checks whether there's dc having same data uid
-         * @return The conflicting DC or NULL
-         */
-        CDeploymentComponent * DoDataUpdateCheckL(
-                CDeploymentComponent &aCompo);
-
-        // Functions used to generate temporary files Java installation use case
-        // where both Jad and Jar files are delivered to phone and Jad file is used to install 
-        // the Java application from local Jar file.
-        void GenerateTempJarFileNameL(RFs &aFs, const TDesC& aMetaSource,
-                TFileName &aFileName) const;
-
-        void GenerateTempFileNameL(const RFs &aFs, const TDesC& aSource,
-                TFileName &aFileName) const;
-
-        void GenerateTempFileNameL(RFs &aFs,
-                const CDeploymentComponent& aCompo, TFileName& aSource,
-                TFileName &aMetaSource, TFileName &aFileName,
-                TFileName &aMetaFileName) const;
-
-        void GenerateTempFileNameL(RFs &aFs,
-                const CDeploymentComponent& aCompo, TFileName &aFileName,
-                TFileName &aMetaFileName) const;
-
-        CApaAppServiceBase* CreateServiceL(TUid aServiceType) const;
-
-public:
-
-        CAppMgmtSrvApp* iParentApp;
-
-private:
-
-        TInt iSessionCount;
-        CShutdown iShutdown;
-        CApplicationManagementUtility* iUtility;
-        CDeliveryComponentStorage *iStorage;
-        TBool iInstallInProgress;
-
-        //SwiUI::RSWInstSilentLauncher iInstaller;
-        SwiUI::RSWInstLauncher iInstaller;
-        SwiUI::TInstallOptionsPckg iInstallOptions;
-        SwiUI::TUninstallOptionsPckg iUninstallOptions;
-        SwiUI::TInstallReqPckg iInstallReq;
-
-        RFs iInstallRFs;
-        RFile iInstallFile;
-
-        CAMDownloadManager* iDownloadMngr;
-
-        CAMDownloaddb* iAMServerDB;
-        TBool iOMASCOMOEnabled;
-
-        };
-
-    namespace NPolicyConstants
-        {
-
-        // "CSF" + CA + SerialNumber + Fingerprint) ;
-        //_LIT( KSubjectFormat, "CSF%S%S%S" );
-        namespace NActions
-            {
-            _LIT8( KUse, "Use" );
-            }
-        _LIT8( KResourceValue, "ApplicationManagement" );
-        }
-
-    class CApplicationManagementSession : public CAknAppServiceBase
-        {
-public:
-        inline CApplicationManagementSession();
-        inline CApplicationManagementSession(const TCertInfo &aInfo);
-        void CreateL();
-private:
-        ~CApplicationManagementSession();
-        inline CApplicationManagementServer& Server() const;
-
-        void ServiceL(const RMessage2& aMessage);
-        TBool PreDispatchMessageL(const RMessage2 &aMessage);
-        void DispatchMessageL(const RMessage2& aMessage);
-        void ServiceError(const RMessage2& aMessage, TInt aError);
-
-        void ComponentCountL(const RMessage2& aMessage);
-        void ComponentIdsL(const RMessage2& aMessage) const;
-        void Deliver2L(const RMessage2& aMessage) const;
-        void DeliverCompleteL(const RMessage2& aMessage) const;
-        void GetComponentL(const RMessage2& aMessage) const;
-        void InstallL(const RMessage2 &aMessage) const;
-        void UpdateL(const RMessage2 &aMessage) const;
-        void GetDataL(const RMessage2 &aMessage) const;
-        void GetDataLengthL(const RMessage2 &aMessage) const;
-        void RemoveL(const RMessage2 &aMessage) const;
-        void UpdateDataL(const RMessage2 &aMessage) const;
-        void UpdateStreamedDataL(const RMessage2& aMessage) const;
-        void DownloadL(const RMessage2 &aMessage) const;
-        void AddTrustL(const RMessage2 &aMessage);
-        void FullUpdateL(const RMessage2 &aMessage) const;
-        void GetUserIdL(const RMessage2 &aMessage) const;
-        void StartDownloadL(const RMessage2& aMessage) const;
-        void StateChangeComponentIdsL(const RMessage2& aMessage) const;
-        void StateChangeComponentIdsCountL(const RMessage2& aMessage) const;
-        void StateChangeCompleteL(const RMessage2& aMessage) const;
-        void ActivateL(const RMessage2& aMessage) const;
-        void DeactivateL(const RMessage2& aMessage) const;
-        void GetTemporaryInstFileL(const RMessage2 &aMessage) const;
-        void GetFinalResultForGAL(const RMessage2 &aMessage);
-
-        TInt PackageSizeL(Swi::RSisRegistrySession& aSession,
-                Swi::RSisRegistryEntry& aEntry);
-        TInt AugmentationSizeL(Swi::RSisRegistrySession& aSession,
-                const Swi::CSisRegistryPackage& aPackage);
-
-        void RemoveInternalL(const TUint32 &aId) const;
-
-        /**
-         * Collects active components in aArrt and places them in aArr
-         */
-        void ActiveComponentsL(const RComponentIdArray &aArrt,
-                RComponentIdArray &aArr,TDeploymentComponentState &aState) const;
-
-        void GenericAlertSentForIdL(const RMessage2& aMessage) const;
-
-        void CheckStatusNodesValuesL();
-
-private:
-        void LookupSisRegistryL();
-
-        TCertInfo iCertInfo;
-        TBool iTrustAdded;
-        };
-
-    }
-#endif //__APPLICATIONMANAGEMENTSERVER_H__
-//  End of File
-