dependencies/swi/sisregistryentry.h
author MattD <mattd@symbian.org>
Thu, 01 Apr 2010 14:50:19 +0100
changeset 48 0d4ac38889fc
parent 31 a3e98f9c292b
permissions -rw-r--r--
Merged in kashif's, fdim's and my removal of abld.bat and .cproject files onto the fixed up version of Christian's head.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     1
/*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     2
* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     3
* All rights reserved.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     4
* This component and the accompanying materials are made available
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     6
* which accompanies this distribution, and is available
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     8
*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
     9
* Initial Contributors:
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    11
*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    12
* Contributors:
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    13
*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    14
* Description: 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    15
* SisRegistry - client registry entry(package) interface
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    16
* Clients use the defined interface to access and querry information
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    17
* specific to a single installed package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    18
* The access to specific functionality depends on the client capabilities
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    19
* and may be restricted.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    20
*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    21
*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    22
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    23
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    24
/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    25
 @file
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    26
 @released
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    27
 @publishedPartner
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    28
*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    29
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    30
#ifndef __SISREGISTRYENTRY_H__
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    31
#define __SISREGISTRYENTRY_H__
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    32
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    33
#include <e32std.h>
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    34
#include <swi/sispackagetrust.h>
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    35
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    36
class CX509Certificate;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    37
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    38
namespace Swi
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    39
{
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    40
class RSisRegistrySession;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    41
class CSisRegistryPackage;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    42
class CSisRegistryDependency;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    43
class CHashContainer;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    44
class TSisTrustStatus;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    45
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    46
/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    47
 * Client registry entry interface
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    48
 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    49
 * @publishedPartner
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    50
 * @released
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    51
 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    52
class RSisRegistryEntry : public RSubSessionBase
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    53
	{
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    54
public:
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    55
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    56
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    57
	 * Opens the base package entry by specifying a UID.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    58
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    59
	 * - A base package is a self-sufficient package which does
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    60
	 * not depend on other packages with the same UID. It is also completely removed
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    61
	 *  together with all related augmentation packages.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    62
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    63
	 * - An agmentation package shares a UID with a base package and 'augments' the base package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    64
	 * It can only be installed only when the related base package is installed
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    65
	 * It can be uninstalled separatelly (without removing base package)
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    66
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    67
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    68
	 * @param aSession	The open RSisRegistrySession to use
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    69
	 * @param aUid		The UID identifying the entry
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    70
	 * @return			KErrNone if successful, otherwise an error code
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    71
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    72
	IMPORT_C TInt Open(RSisRegistrySession &aSession, TUid aUid);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    73
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    74
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    75
	 * Open a registry entry (includes augmentations) by specifying a package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    76
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    77
	 * @param aSession The open RSisRegistrySession to use
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    78
	 * @param aPackage The package to open
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    79
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    80
	 * @return KErrNone if successful, or an error code
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    81
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    82
	IMPORT_C TInt OpenL(RSisRegistrySession &aSession, const CSisRegistryPackage& aPackage);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    83
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    84
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    85
	 * Open a registry entry (includes augmentations) by specifying a package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    86
	 * and vendor name.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    87
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    88
	 * @param aSession		The open RSisRegistrySession to use
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    89
	 * @param aPackageName	The name of the package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    90
	 * @param aVendorName	The name of the vendor
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    91
	 * @return				KErrNone if successful, otherwise an error code
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    92
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    93
	IMPORT_C TInt Open(RSisRegistrySession &aSession, const TDesC& aPackageName, const TDesC& aVendorName);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    94
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    95
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    96
	 * Closes the registry entry by closing the sub-session
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    97
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    98
	IMPORT_C void Close();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
    99
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   100
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   101
	 * Indicates whether the package is currently on the device (i.e. not on
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   102
	 * removable media that is not inserted).
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   103
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   104
	 * @return	ETrue if the package is on the device;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   105
	 *			EFalse otherwise
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   106
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   107
	IMPORT_C TBool IsPresentL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   108
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   109
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   110
	 * Indicates whether the package is signed
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   111
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   112
	 * @return	ETrue the package is signed;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   113
	 *			EFalse otherwise
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   114
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   115
	IMPORT_C TBool IsSignedL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   116
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   117
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   118
	 * Indicates the level of trust associated with the package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   119
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   120
	 * @return	The level of trust
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   121
	 * @deprecated Will be replaced in the future by a more complete TrustStatusL method.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   122
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   123
	IMPORT_C TSisPackageTrust TrustL() const;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   124
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   125
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   126
	 * The time at which the trust level was established
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   127
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   128
	 * @return The time at which the trust level was established
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   129
	 * @deprecated Will be replaced in the future by a more complete TrustStatusL method.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   130
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   131
	IMPORT_C TTime TrustTimeStampL() const;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   132
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   133
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   134
    /**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   135
	 * The trust status object for the entry. This supercedes information
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   136
	 * provided by the deprecated TrustL and TrustTimeStampL methods.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   137
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   138
	 * @return The trust status information associated with
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   139
	 * this entry.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   140
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   141
	IMPORT_C TSisTrustStatus TrustStatusL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   142
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   143
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   144
	 * Indicates whether or not the package is installed on read-only media
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   145
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   146
	 * 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   147
	 * @return	ETrue if any drive used by this package is read-only;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   148
	 *			EFalse otherwise
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   149
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   150
#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK		 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   151
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   152
	 * N.B. Using Usif::RSoftwareComponentRegistry::IsComponentOnReadOnlyDriveL 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   153
	 * will return different result when we have an empty ROM stub or when all 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   154
	 * the files of a ROM based package are eclipsed, since SCR only considers
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   155
	 * the current list of files registered with it.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   156
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   157
#endif
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   158
	IMPORT_C TBool IsInRomL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   159
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   160
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   161
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   162
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   163
	 * Indicates whether or not the package augments another package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   164
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   165
	 * @return	ETrue if the package is an augmentation;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   166
	 *			EFalse otherwise
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   167
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   168
	IMPORT_C TBool IsAugmentationL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   169
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   170
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   171
	 * Gets the version of this package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   172
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   173
	 * @return	The version
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   174
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   175
	IMPORT_C TVersion VersionL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   176
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   177
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   178
	 * Gets the installed language for this package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   179
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   180
	 * @return	The language
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   181
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   182
	IMPORT_C TLanguage LanguageL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   183
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   184
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   185
	 * Gets the UID of this package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   186
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   187
	 * @return	The UID
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   188
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   189
	IMPORT_C TUid UidL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   190
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   191
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   192
	 * Gets the name of a package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   193
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   194
	 * @return	The name of the package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   195
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   196
	IMPORT_C HBufC* PackageNameL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   197
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   198
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   199
	 * Gets the unique vendor name of this package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   200
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   201
	 * @return	The unique vendor name
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   202
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   203
	IMPORT_C HBufC* UniqueVendorNameL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   204
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   205
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   206
	 * Gets the localised vendor name of a package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   207
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   208
	 * @return	The localised name of the vendor
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   209
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   210
	IMPORT_C HBufC* LocalizedVendorNameL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   211
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   212
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   213
	 * Returns an array of Sids (executables). The array is supplied by the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   214
	 * client which is then populated.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   215
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   216
	 * @param aSids	 On return, the array object to be populated.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   217
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   218
	IMPORT_C void SidsL(RArray<TUid>& aSids);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   219
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   220
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   221
	 * Provides a list of files installed by this package. This function may also return
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   222
	 * a file specification that contains wildcard characters ('?' and/or '*') if the 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   223
	 * package is a rom 'stub' sis file. Wildcard file specifications are NOT expanded and
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   224
	 * in this instance, the Count() member function on 'aFiles' cannot be used as an
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   225
	 * indicator of the number of files within the package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   226
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   227
	 * @param aFiles	The array of files to be populated.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   228
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   229
	IMPORT_C void FilesL(RPointerArray<HBufC>& aFiles);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   230
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   231
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   232
     *  Returns the size of the installation excluding the size of
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   233
     *  other embedded packages
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   234
     *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   235
     *  @return  A TInt64 value of the total installation size
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   236
     */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   237
	IMPORT_C TInt64 SizeL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   238
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   239
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   240
	 * Provides the certificate chains associated with this package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   241
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   242
	 * @param aCertificateChains	The array of certificate chains
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   243
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   244
	IMPORT_C void CertificateChainsL(RPointerArray<HBufC8>& aCertificateChains);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   245
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   246
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   247
	 * Gets the value of a property within a package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   248
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   249
	 * @param aKey	The key to search for
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   250
	 * @return		The value of this key if found;
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   251
	                KErrNotFound otherwise.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   252
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   253
	IMPORT_C TInt PropertyL(TInt aKey);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   254
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   255
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   256
	 * Returns all augmentations to this package. If no augmentations exist,
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   257
	 * the lists are empty
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   258
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   259
	 * @param aPackageNames	On return, a list of PackageNames
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   260
	 * @param aVendorNames	On return, the corresponding list of VendorNames
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   261
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   262
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   263
	IMPORT_C void AugmentationsL(RPointerArray<HBufC>& aPackageNames, RPointerArray<HBufC>& aVendorNames);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   264
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   265
    /**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   266
	 * Returns all augmentations to this package. If no augmentations exist,
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   267
	 * the list is empty
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   268
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   269
	 * @param aPackages The array of CSisRegistryPackages to be populated
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   270
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   271
    IMPORT_C void AugmentationsL(RPointerArray<CSisRegistryPackage>& aPackages);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   272
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   273
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   274
	 * Gets the number of augmentations to this package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   275
	 * @return the number of augmentations to this package
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   276
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   277
	IMPORT_C TInt AugmentationsNumberL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   278
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   279
    /**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   280
     *  Returns the hash value of a selected file, identified by its name
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   281
     *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   282
     *  @param aFileName the full file path
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   283
     *  @return A new CHashContainer object
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   284
     */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   285
	IMPORT_C CHashContainer* HashL(const TDesC& aFileName);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   286
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   287
	 /**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   288
	 *  Returns the package of a current entry
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   289
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   290
	 *  @return A new CSisRegistryPackage object
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   291
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   292
	IMPORT_C CSisRegistryPackage* PackageL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   293
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   294
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   295
	 * Return the controllers associated with this package as raw binary data
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   296
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   297
	 * @param aControllers The array of controllers to be populated.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   298
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   299
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   300
	IMPORT_C void ControllersL(RPointerArray<HBufC8>& aControllers);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   301
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   302
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   303
	 Returns what drive the user selected for files in the Sis file that
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   304
	 did not specify drive.It returns KNoDriveSelected if user is not prompted for drive selection.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   305
	 For ROM stub packages it returns zero instead of KNoDriveSelected
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   306
	 To determine the set of drives that files were installed to for this registry entry @see RSisRegistryEntry::InstalledDrivesL().
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   307
	 @return TChar The drive selected
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   308
	 @see KNoDriveSelected
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   309
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   310
	IMPORT_C TChar SelectedDriveL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   311
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   312
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   313
	Determines whether the base package or any of the partial upgrades
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   314
	require all applications within this package to be to be shutdown before
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   315
	uninstalling the package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   316
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   317
	@return Whether to shutdown all applications at un-install.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   318
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   319
	IMPORT_C TBool ShutdownAllAppsL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   320
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   321
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   322
	The function is used to re-verify the signature and certificate of the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   323
	SIS Controller associated to the RSisRegistryEntry object.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   324
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   325
	aX509CertArray parameter is used to give set of trusted root certificates
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   326
	that are used for validation of the SIS Controller certificate. If the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   327
	set given as parameter is empty, Symbian implementation can fetch the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   328
	set of trusted root certificates from Certificate Management. If the set
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   329
	is not empty, then root certificates should not be fetched from
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   330
	Certificate Mgmt, but only the root certificates from the set given as
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   331
	parameter should be used for SIS Controller certificate validation.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   332
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   333
	@param Array of trusted root certificates.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   334
	@return Returns ETrue if the registry entry is validated against the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   335
			trusted certificates provided.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   336
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   337
	IMPORT_C TBool VerifyControllerSignatureL(RPointerArray<CX509Certificate>& aX509CertArray);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   338
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   339
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   340
	The function is used to re-verify the signature and certificate of the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   341
	SIS Controller associated to the RSisRegistryEntry object.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   342
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   343
	aX509CertArray parameter is used to give set of trusted root certificates
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   344
	that are used for validation of the SIS Controller certificate. If the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   345
	set given as parameter is empty, Symbian implementation can fetch the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   346
	set of trusted root certificates from Certificate Management. If the set
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   347
	is not empty, then root certificates should not be fetched from
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   348
	Certificate Mgmt, but only the root certificates from the set given as
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   349
	parameter should be used for SIS Controller certificate validation.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   350
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   351
	@param aX509CertArray Array of trusted root certificates.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   352
	@param aCheckDateAndTime Indicates if the certificate validity period should be checked against the current date and time.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   353
	@return Returns ETrue if the registry entry is validated against the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   354
			trusted certificates provided.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   355
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   356
	IMPORT_C TBool VerifyControllerSignatureL(RPointerArray<CX509Certificate>& aX509CertArray, TBool aCheckDateAndTime);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   357
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   358
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   359
	Indicates whether or not the package will be removed by uninstalling the last dependant
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   360
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   361
	IMPORT_C TInt RemoveWithLastDependentL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   362
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   363
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   364
	This function is used to indicate the embedding package has been uninstalled but
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   365
	this package remained because of dependency.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   366
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   367
	IMPORT_C void SetRemoveWithLastDependentL(TUid uid);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   368
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   369
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   370
	 * @return true if the 'non-removable' flag is NOT set in the SisInfo object
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   371
	 * belonging to this package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   372
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   373
	IMPORT_C TBool RemovableL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   374
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   375
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   376
	 Returns set of drives to which files were installed in SIS file
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   377
	 @return Returns The bitmask of drives is as follows:
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   378
		Bit 0 -> A drive  
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   379
		Bit 1 -> B drive  
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   380
		so on and so forth.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   381
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   382
	IMPORT_C TUint InstalledDrivesL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   383
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   384
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   385
	 * Returns whether or not the package was pre-installed
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   386
	 *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   387
	 * @return ETrue if the package was pre-installed
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   388
	 *         EFalse otherwise
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   389
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   390
	IMPORT_C TBool PreInstalledL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   391
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   392
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   393
	* Returns whether or not the package was pre-installed and files should
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   394
	* be deleted on uninstall.  This will have been set true if and only if
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   395
	* the swipolicy indicates that preinstalled files can be deleted, and the
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   396
	* stub sis file used to install the package was writable at install time.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   397
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   398
	* @return ETrue if the package was pre-installed and files should be
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   399
	*               deleted on uninstall.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   400
	*         EFalse otherwise
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   401
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   402
	IMPORT_C TBool IsDeletablePreInstalledL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   403
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   404
		
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   405
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   406
	* Returns the array of packages which are either dependent on this package or are
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   407
	* augmentations of this package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   408
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   409
	* @note 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   410
	* A is a "Dependent" of B if B is in A's dependency list
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   411
	* A is a "dependency" of B if A is in B's dependency list
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   412
	* For example consider a package Shared_library_B which is used by a package App_A. 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   413
	* Shared_Library_B will be listed as a dependency in the sis file which installs App_A 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   414
	* App_A cannot be installed successfully without Shared_Library_B being present. 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   415
	* If Shared_Library_B is un-installed App_A may not function correctly.  
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   416
	* App_A is a "dependent" of Shared_library_B
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   417
	* Shared_library_B is a "dependency" of App_A
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   418
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   419
	* @param aDependents The array of packages which are either dependent on this package  
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   420
	* or are augmentations of this package (i.e. its dependents)
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   421
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   422
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   423
	IMPORT_C void DependentPackagesL(RPointerArray<CSisRegistryPackage>& aDependents);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   424
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   425
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   426
	* Returns the dependency array for this package (ie the packages, denoted 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   427
	* by UID and the version ranges it depends on).
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   428
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   429
	* @note 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   430
	* A is a "Dependent" of B if B is in A's dependency list
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   431
	* A is a "dependency" of B if A is in B's dependency list
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   432
	* For example consider a package Shared_library_B which is used by a package App_A. 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   433
	* Shared_Library_B will be listed as a dependency in the sis file which installs App_A 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   434
	* App_A cannot be installed successfully without Shared_Library_B being present. 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   435
	* If Shared_Library_B is un-installed App_A may not function correctly.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   436
	* In this scenario 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   437
	* App_A is a "dependent" of Shared_library_B
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   438
	* Shared_library_B is a "dependency" of App_A
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   439
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   440
	* @param aDependencies The array of packages that this package depends on (i.e. its dependencies)
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   441
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   442
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   443
	IMPORT_C void DependenciesL(RPointerArray<CSisRegistryDependency>& aDependencies);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   444
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   445
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   446
	* For a given package entry, return a array of packages that were
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   447
	* embedded within this package.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   448
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   449
	* @param aEmbedded The array of embedded packages
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   450
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   451
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   452
	IMPORT_C void EmbeddedPackagesL(RPointerArray<CSisRegistryPackage>& aEmbedded);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   453
		
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   454
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   455
	* For a given package entry, return a array of packages that 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   456
	* embed it. 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   457
	* Note: This is possible when package A embeds D and the subsequently installed packages
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   458
	*       B and C each in turn embed D. As there will be a single copy and a single 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   459
	*       registration for D, it is imperative this back information is retained 
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   460
	*       and it is accessible.
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   461
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   462
	* @param aEmbedding The array of embedding packages
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   463
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   464
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   465
	IMPORT_C void EmbeddingPackagesL(RPointerArray<CSisRegistryPackage>& aEmbedding);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   466
	
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   467
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   468
	* Returns ETrue if the SIS package is signed by a certificate trusted by the device (SU)
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   469
	* for eclipsing of files on the Z drive
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   470
	*
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   471
	*/
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   472
	IMPORT_C TBool IsSignedBySuCertL();
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   473
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   474
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   475
    * Returns the list of files that were created internally by registry. This function
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   476
	* is to be used to determine the list of internal files that are not to be removed for
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   477
	* an NR package during an RFS(Restore Factory Settings).
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   478
    *
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   479
    * @param aRegistryFiles     The array of filenames with complete path
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   480
    */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   481
    IMPORT_C void RegistryFilesL(RPointerArray<HBufC>& aRegistryFiles);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   482
		
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   483
protected:
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   484
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   485
     * @internalComponent
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   486
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   487
	HBufC8* SendReceiveBufferLC(TInt aMessage);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   488
	/**
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   489
     * @internalComponent
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   490
	 */
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   491
	HBufC8* SendReceiveBufferLC(TInt aMessage, const TDesC& aInputDescriptor);
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   492
	};
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   493
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   494
} // namespace
a3e98f9c292b added missing files
kashif.sayed
parents:
diff changeset
   495
#endif