ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h
changeset 0 ba25891c3a9e
child 11 3ba40be8e484
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,261 @@
+/*
+* Copyright (c) 2006-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:   Declaration of MNcdInstallationService
+*
+*/
+
+
+#ifndef M_NCD_INSTALLATION_SERVICE_H
+#define M_NCD_INSTALLATION_SERVICE_H
+
+// SwiUI namespace contains install options 
+// and install options package definitions
+// that are used for the silent install.
+#include <SWInstDefs.h>
+
+#include "ncditempurpose.h"
+
+class MNcdInstallationServiceObserver;
+class TCatalogsVersion;
+class TDataType;
+class RFile;
+class RFs;
+class CDocumentHandler;
+
+
+/**
+ * Theme SIS UID
+ * This is given to observer as an application UID if a theme
+ * was installed
+ */
+const TInt KNcdThemeSisUid = 0x101f8582;
+
+
+/**
+ * Application installation statuses
+ *
+ * @note Do not change these 
+ */ 
+enum TNcdApplicationStatus
+    {
+    ENcdApplicationOlderVersionInstalled = -1,
+    ENcdApplicationNotInstalled = 0,
+    ENcdApplicationInstalled,
+    ENcdApplicationNewerVersionInstalled
+    };
+    
+
+/**
+ *
+ */
+class MNcdInstallationService
+    {
+public: // Destruction
+
+    /**
+     * Destructor
+     */
+    virtual ~MNcdInstallationService() {}
+    
+public: // New functions
+
+    /**
+     * Installs all kinds of files. Will leave with KErrInUse if installation
+     * is already in progress.
+     * @param aFileName Name of the file to be installed.
+     * @param aMimeType Mime type for the file to be installed.
+     * @param aPurpose
+     */    
+    virtual void InstallL( const TDesC& aFileName,
+                           const TDesC& aMimeType,
+                           const TNcdItemPurpose& aPurpose  ) = 0;
+    
+
+    /**
+     * Installs all kinds of files. Will leave with KErrInUse if installation
+     * is already in progress.
+     * @param aFile Handle to source file
+     * @param aMimeType Mime type for the file to be installed.
+     * @param aPurpose
+     */    
+    virtual void InstallL( RFile& aFile,
+                           const TDesC& aMimeType,
+                           const TNcdItemPurpose& aPurpose  ) = 0;
+    
+
+    /**
+     * Installs java software. Will leave with KErrInUse if installation
+     * is already in progress.
+     * @param aFileName Name of the JAR file to be installed.
+     * @param aMimeType Mime type for the file to be installed.
+     * @param aDescriptorData Descriptor (JAD) data, or KNullDesC if not available.
+     */    
+    virtual void InstallJavaL( const TDesC& aFileName,
+                               const TDesC& aMimeType,
+                               const TDesC8& aDescriptorData ) = 0;
+
+
+    /**
+     * Installs java software. Will leave with KErrInUse if installation
+     * is already in progress.
+     * @param aFile Handle to source file
+     * @param aMimeType Mime type for the file to be installed.
+     * @param aDescriptorData Descriptor (JAD) data, or KNullDesC if not available.
+     */    
+    virtual void InstallJavaL( RFile& aFile,
+                               const TDesC& aMimeType,
+                               const TDesC8& aDescriptorData ) = 0;
+
+    /**
+     * Installs all kinds of files silently. 
+     * @see InstallL
+     */    
+    virtual void SilentInstallL( RFile& aFile,
+                                 const TDesC& aMimeType,
+                                 const TNcdItemPurpose& aPurpose ,
+                                 const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg ) = 0;
+
+
+    /**
+     * Installs java software silently. 
+     * @see InstallJavaL
+     */    
+    virtual void SilentInstallJavaL( RFile& aFile,
+                                     const TDesC& aMimeType,
+                                     const TDesC8& aDescriptorData,
+                                     const SwiUI::TInstallOptionsPckg& aInstallOptionsPckg ) = 0;
+
+    /**
+     * Cancels the silent installation if it is going on.
+     *
+     * @note If the installation has almost finished, the cancel request
+     * may not have any effect and the installation will finish.
+     *
+     * @param aFileName Will contain path and file name, if picture,
+     * ringingtone or similar was installed and a theme name if a theme was installed.
+     * Will contain NULL for sis and java applications. Old value is deleted.
+     * @param aAppUid will contain UID if an application was installed, either sis
+     * or java. Contains KNcdThemeSisUid if a theme was installed and
+     * KNullUid for non-applications.
+     * @param aError KErrNone if installation was finished even though
+     * cancel was requested. KErrCancel if cancellation was success.
+     * KNcdThemeReinstalled if a theme was reinstalled. 
+     * KNcdThemePossiblyReinstalled if a theme was likely reinstalled.
+     * Otherwise some Symbian error code.
+     */
+    virtual void CancelSilentInstall( HBufC*& aFileName,
+                                      TUid& aAppUid,
+                                      TInt& aError ) = 0;
+                   
+                   
+    /**
+     * Sets observer for installation services.
+     * @param aObserver Observer for installation services.
+     */
+    virtual void SetObserver(
+        MNcdInstallationServiceObserver& aObserver ) = 0;
+
+    /**
+     * Gets version of installed application by using its UID.
+     * @param aUid UID of the application.
+     * @param aVersion On return contains version of the application.
+     * @return TInt Error code, KErrNotFound if application not found.
+     */
+    virtual TInt ApplicationVersion( const TUid& aUid,
+                                     TCatalogsVersion& aVersion ) = 0;
+
+    /**
+     * Checks whether an application is installed on the device.
+     * @param aUid UID of the application.
+     * @return TBool ETrue if installed.
+     */
+    virtual TBool IsApplicationInstalledL( const TUid& aUid ) = 0;
+
+    virtual TNcdApplicationStatus IsApplicationInstalledL( 
+        const TUid& aUid, const TCatalogsVersion& aVersion ) = 0;
+
+    /**
+     * Gets the first SID from the SIS registry package
+     * by using application UID.
+     * @param aUid UID of the application.
+     * @return TUid KNullUid if package not found.
+     */
+    virtual TUid SidFromSisRegistryL( const TUid& aUid ) = 0;
+
+    /**
+     * Appends rights into the rights database. May leave with DRM
+     * specific error code.
+     * @param aRightsObject Buffer containing the rights object.
+     * @param aMimeType Type of the rights object.
+     */
+    virtual void AppendRightsL(
+        const TDesC8& aRightsObject,
+        const TDataType& aMimeType ) = 0;
+
+    
+    /**
+     * Checks whether a theme is installed or not
+     *
+     * @param aThemeName Theme name
+     * @return ETrue if the theme is installed
+     */
+    virtual TBool IsThemeInstalledL( const TDesC& aThemeName ) = 0;    
+    
+    
+    /**
+     * Deletes the given file
+     *
+     * @param aFilename Path and name of the file to delete
+     * @return Symbian error code
+     */
+    virtual TInt DeleteFile( const TDesC& aFilename ) = 0;
+    
+    
+    /**
+     * File server session getter
+     *
+     * @return File server session
+     */
+    virtual RFs& FileServerSession() = 0; 
+
+    
+    /**
+     * Writes JAD to disk. 
+     * 
+     * The file is written to the same directory where the related JAR is.
+     * 
+     * @param aJarFileName Name of the related JAR. Used for generating the filename for JAD
+     * @param aJad JAD data
+     * @return JAD filepath
+     * @leave Symbian error code
+     */
+    virtual HBufC* WriteJadL( const TDesC& aJarFileName, const TDesC8& aJad  ) = 0;
+    
+    /**
+     * Recognizes the data from the file itself
+     *
+     * @param aFileName Path and name of the file 
+     * @return Mime type of the file
+     */
+    virtual HBufC* RecognizeDataL( const TDesC& aFileName ) = 0;
+
+    
+    /**
+     * Document handler getter
+     * @return Document handler instance
+     */
+    virtual CDocumentHandler& DocumentHandler() = 0;
+    };
+
+#endif // M_NCD_INSTALLATION_SERVICE_H