javamanager/javaregistry/legacy/installedappsregistry/inc/MInstalledAppsRegistry.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javaregistry/legacy/installedappsregistry/inc/MInstalledAppsRegistry.h Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,255 @@
+/*
+* Copyright (c) 2002-2003 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: Definition of the MInstalledAppsRegistry.
+*
+*/
+
+
+#ifndef MINSTALLEDAPPSREGISTRY_H
+#define MINSTALLEDAPPSREGISTRY_H
+
+// INCLUDE FILES
+
+#include <e32base.h>
+#include <appversion.h>
+
+#include "installtypes.h"
+
+// FORWARD DECLARATIONS
+
+class MInstalledAppsRegistryEntry;
+
+// CLASS DECLARATIONS
+
+/**
+* The registry of installed applications. This registry allows read access
+* to entries. Each entry is defined by class MInstalledAppsRegistryEntry.
+*
+* The client implementation marshals the requests to the server. Access
+* is only read only. The server implementation allows additionally for
+* write access.
+*/
+class MInstalledAppsRegistry
+{
+public:
+ /**
+ * Release destroys this object (or removes the reference to
+ * a reference counted implementation).
+ */
+ virtual void Release() = 0;
+
+ /**
+ * Returns an array of installed UIDs. The array is supplied by the client
+ * which is then populated. There is no guarantee about the order in which
+ * the uids are put in the array.
+ * @param aUidArray The array object to be populated. This array should be
+ * empty before passing it in. The result is undefined if the array is
+ * not empty.
+ */
+ virtual void InstalledUidsL(RArray<TUid>& aUidArray) const = 0;
+
+ /**
+ * API call to check if an entry with the given UID is present in the
+ * registry.
+ * @param aUid The UID to query.
+ * @return ETrue if there exists an entry present with the given UID,
+ * EFalse otherwise.
+ */
+ virtual TBool EntryPresentL(const TUid& aUid) const = 0;
+
+ /**
+ * Returns an entry from the registry whose UID is equal to aUid
+ * @param aUid The UID of the entry to be found.
+ * @return A pointer to the entry. Note that ownership of this object
+ * is transferred to the calling client and is therefore
+ * required to destroy it. The pointer is guarenteed to be
+ * non-NULL.
+ */
+ virtual MInstalledAppsRegistryEntry* EntryLC
+ (const TUid& aUid) const = 0;
+ virtual MInstalledAppsRegistryEntry* EntryL
+ (const TUid& aUid) const = 0;
+
+ /**
+ * Returns an entry from the registry with a given package name and
+ * vendor name for a given language.
+ * @return A pointer to the entry. Note that ownership of this object
+ * is transferred to the calling client and is therefore
+ * required to destroy it. The pointer is guarenteed to be
+ * non-NULL.
+ */
+ virtual MInstalledAppsRegistryEntry* EntryLC
+ (TLanguage aLang,
+ const TDesC& aPackage,
+ const TDesC& aVendor) const = 0;
+ virtual MInstalledAppsRegistryEntry* EntryL
+ (TLanguage aLang,
+ const TDesC& aPackage,
+ const TDesC& aVendor) const = 0;
+
+ /**
+ * Returns the system property given by the UID. Leaves with KErrNotFound
+ * if the property was not found.
+ * @param aPropertyId The UID of the given property.
+ * @return The value - ownership of the buffer is transferred to client.
+ */
+ virtual HBufC8* GetSystemPropertyL(TUid aPropertyId) const = 0;
+
+ /**
+ * Function to create a registry. This returns a server registry or client
+ * registry, depending on which library is linked
+ */
+ IMPORT_C static MInstalledAppsRegistry* CreateL();
+
+protected:
+ // Forces client to use the Release method
+ inline virtual ~MInstalledAppsRegistry();
+};
+
+
+/**
+* An entry of an installed application. These entries created and retrieved
+* using the MInstalledAppsRegistry API.
+*
+* Each entry is keyed by a UID, and contains various fields and parameters.
+* It also contains a list of files which make up the application, and
+* a list of languages the application supports.
+*/
+class MInstalledAppsRegistryEntry
+{
+public:
+ /**
+ * Release destroys this object (or removes the reference to
+ * a reference counted implementation)
+ */
+ virtual void Release() = 0;
+
+ // API attribute getters - synchronous
+ virtual TUid UidL() const = 0;
+ virtual TAppVersion VersionL() const = 0;
+ virtual TChar DriveL() const = 0;
+ virtual TInstallType TypeL() const = 0;
+
+ /**
+ * Given a language, return the package name. If the language is not
+ * found, it will leave with KErrNotFound.
+ * @param aLanguage Language of the package.
+ * @return The returned package name in the given language.
+ */
+ virtual const TDesC& PackageNameL(TLanguage aLanguage) const = 0;
+
+ /**
+ * Given a language, return the vendor name. If the language is not found,
+ * it will leave with KErrNotFound.
+ * @param aLanguage Language of the package.
+ * @return The returned vendor name
+ */
+ virtual const TDesC& VendorNameL(TLanguage aLanguage) const = 0;
+
+ /**
+ * Populates a client owned array with the list of languages.
+ * @param[out] aLangArray List of supported languages.
+ */
+ virtual void LanguagesL(RArray<TLanguage>& aLangArray) const = 0;
+
+ /**
+ * Returns whether or not a particular language is supported.
+ * @param aLanguage Language support to check.
+ */
+ virtual TBool LanguageSupportedL(TLanguage aLanguage) const = 0;
+
+ /**
+ * Populates the input array with the list of files used by the
+ * application - synchronous.
+ * @param[out] aFileArray The array to be populated.
+ */
+ virtual void ListFilesL(RPointerArray<HBufC>& aFileArray) const = 0;
+
+ /**
+ * Given a filename (with a full path specifier), this function
+ * returns whether or not this application uses the file.
+ * @param aFileName Name of the file to check.
+ * @return ETrue if the specified file is used by this application,
+ * EFalse otherwise.
+ */
+ virtual TBool UsesFileL(const TDesC& aFileName) const = 0;
+
+ /**
+ * Populates the input array with the list of directories "owned" by the
+ * application.
+ * @param[out] aDirArray The array to be populated.
+ */
+ virtual void ListDirectoriesL
+ (RPointerArray<HBufC>& aDirArray) const = 0;
+
+ /**
+ * Returns the number of certificate chains.
+ */
+ virtual TInt NumberOfCertificateChainsL() const = 0;
+
+ /**
+ * Returns the n-th chain.
+ */
+ virtual const TDesC8& CertificateChainL(TInt aChain) const = 0;
+
+ /**
+ * Returns the size in bytes used by the installed application.
+ * The size is computed dynamically by adding the size of the files owned
+ * by this entry. If a file is not found (it may be on an absent removable
+ * media) its size is considered to be 0. Entries may own directories,
+ * in this case all the files in these directories are considered to be
+ * owned and are included in the computation.
+ */
+ virtual TInt SizeL() const = 0;
+
+ /**
+ * Given a file extension, return a single filename with that
+ * extension. Leaves if not found. It is generally used to find
+ * a .jad or .jar file location in the registry.
+ * @param aExtension The extension to search for (eg ".app").
+ * @param aFileName The returned file name with the extension.
+ */
+ virtual void FindFileWithExtL(const TDesC& aExtension,
+ TFileName& aFileName) const = 0;
+
+ /**
+ * Returns a boolean which indicates whether or not this entry is
+ * located in ROM. An entry located in ROM cannot be uninstalled.
+ * @return ETrue if located in ROM, EFalse otherwise.
+ */
+ virtual TBool IsInRomL() const = 0;
+
+ /**
+ * Returns property of the entry keyed by the supplied UID. Leaves with
+ * KErrNotFound if the property was not found in the entry.
+ * @param aPropertyId The UID of the given property.
+ * @return The value - ownership of the buffer is transferred to client.
+ */
+ virtual HBufC8* GetPropertyL(TUid aPropertyId) const = 0;
+
+ /**
+ * Populates the array parameter with the list of Apparc registration
+ * file "ID"-s.
+ * @param aApparcIdentifiersArray The array to be populated.
+ */
+ virtual void ListApparcIdentifiersL
+ (RPointerArray<HBufC>& aApparcIdentifiersArray) const = 0;
+
+protected:
+ inline virtual ~MInstalledAppsRegistryEntry();
+};
+
+#include <swi/minstalledappsregistry.inl>
+
+#endif // MINSTALLEDAPPSREGISTRY_H