diff -r 000000000000 -r ba25891c3a9e ncdengine/provider/deviceinteraction/inc/ncdinstallationservice.h --- /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 + +#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