Swi::RSisRegistryEntry Class Reference

class Swi::RSisRegistryEntry : public RSubSessionBase

Client registry entry interface

Inherits from

Public Member Functions
IMPORT_C void AugmentationsL ( RPointerArray < HBufC > &, RPointerArray < HBufC > &)
IMPORT_C void AugmentationsL ( RPointerArray < CSisRegistryPackage > &)
IMPORT_C TInt AugmentationsNumberL ()
IMPORT_C void CertificateChainsL ( RPointerArray < HBufC8 > &)
IMPORT_C void Close ()
IMPORT_C void ControllersL ( RPointerArray < HBufC8 > &)
IMPORT_C void DependenciesL ( RPointerArray < CSisRegistryDependency > &)
IMPORT_C void DependentPackagesL ( RPointerArray < CSisRegistryPackage > &)
IMPORT_C void EmbeddedPackagesL ( RPointerArray < CSisRegistryPackage > &)
IMPORT_C void EmbeddingPackagesL ( RPointerArray < CSisRegistryPackage > &)
IMPORT_C void FilesL ( RPointerArray < HBufC > &)
IMPORT_C CHashContainer * HashL (const TDesC &)
IMPORT_C TUint InstalledDrivesL ()
IMPORT_C TBool IsAugmentationL ()
IMPORT_C TBool IsDeletablePreInstalledL ()
IMPORT_C TBool IsInRomL ()
IMPORT_C TBool IsPresentL ()
IMPORT_C TBool IsSignedBySuCertL ()
IMPORT_C TBool IsSignedL ()
IMPORT_C TLanguage LanguageL ()
IMPORT_C HBufC * LocalizedVendorNameL ()
IMPORT_C TInt Open ( RSisRegistrySession &, TUid )
IMPORT_C TInt Open ( RSisRegistrySession &, const TDesC &, const TDesC &)
IMPORT_C TInt OpenL ( RSisRegistrySession &, const CSisRegistryPackage &)
IMPORT_C CSisRegistryPackage * PackageL ()
IMPORT_C HBufC * PackageNameL ()
IMPORT_C TBool PreInstalledL ()
IMPORT_C TInt PropertyL ( TInt )
IMPORT_C void RegistryFilesL ( RPointerArray < HBufC > &)
IMPORT_C TBool RemovableL ()
IMPORT_C TInt RemoveWithLastDependentL ()
IMPORT_C TChar SelectedDriveL ()
IMPORT_C void SetRemoveWithLastDependentL ( TUid )
IMPORT_C TBool ShutdownAllAppsL ()
IMPORT_C void SidsL ( RArray < TUid > &)
IMPORT_C TInt64 SizeL ()
IMPORT_C TSisPackageTrust TrustL ()
IMPORT_C TSisTrustStatus TrustStatusL ()
IMPORT_C TTime TrustTimeStampL ()
IMPORT_C TUid UidL ()
IMPORT_C HBufC * UniqueVendorNameL ()
IMPORT_C TBool VerifyControllerSignatureL ( RPointerArray < CX509Certificate > &)
IMPORT_C TBool VerifyControllerSignatureL ( RPointerArray < CX509Certificate > &, TBool )
IMPORT_C TVersion VersionL ()
Protected Member Functions
HBufC8 * SendReceiveBufferLC ( TInt )
HBufC8 * SendReceiveBufferLC ( TInt , const TDesC &)
Inherited Functions
RSubSessionBase::CloseSubSession(TInt)
RSubSessionBase::CreateAutoCloseSubSession(RSessionBase &,TInt,const TIpcArgs &)
RSubSessionBase::CreateSubSession(const RSessionBase &,TInt)
RSubSessionBase::CreateSubSession(const RSessionBase &,TInt,const TIpcArgs &)
RSubSessionBase::RSubSessionBase()
RSubSessionBase::Send(TInt)const
RSubSessionBase::Send(TInt,const TIpcArgs &)const
RSubSessionBase::SendReceive(TInt)const
RSubSessionBase::SendReceive(TInt,TRequestStatus &)const
RSubSessionBase::SendReceive(TInt,const TIpcArgs &)const
RSubSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
RSubSessionBase::Session()const
RSubSessionBase::SubSessionHandle()const

Member Functions Documentation

AugmentationsL(RPointerArray< HBufC > &, RPointerArray< HBufC > &)

IMPORT_C void AugmentationsL ( RPointerArray < HBufC > & aPackageNames,
RPointerArray < HBufC > & aVendorNames
)

Returns all augmentations to this package. If no augmentations exist, the lists are empty

Parameters

RPointerArray < HBufC > & aPackageNames On return, a list of PackageNames
RPointerArray < HBufC > & aVendorNames On return, the corresponding list of VendorNames

AugmentationsL(RPointerArray< CSisRegistryPackage > &)

IMPORT_C void AugmentationsL ( RPointerArray < CSisRegistryPackage > & aPackages )

Returns all augmentations to this package. If no augmentations exist, the list is empty

Parameters

RPointerArray < CSisRegistryPackage > & aPackages The array of CSisRegistryPackages to be populated

AugmentationsNumberL()

IMPORT_C TInt AugmentationsNumberL ( )

Gets the number of augmentations to this package.

CertificateChainsL(RPointerArray< HBufC8 > &)

IMPORT_C void CertificateChainsL ( RPointerArray < HBufC8 > & aCertificateChains )

Provides the certificate chains associated with this package

Parameters

RPointerArray < HBufC8 > & aCertificateChains The array of certificate chains

Close()

IMPORT_C void Close ( )

Closes the registry entry by closing the sub-session

ControllersL(RPointerArray< HBufC8 > &)

IMPORT_C void ControllersL ( RPointerArray < HBufC8 > & aControllers )

Return the controllers associated with this package as raw binary data

Parameters

RPointerArray < HBufC8 > & aControllers The array of controllers to be populated.

DependenciesL(RPointerArray< CSisRegistryDependency > &)

IMPORT_C void DependenciesL ( RPointerArray < CSisRegistryDependency > & aDependencies )

Returns the dependency array for this package (ie the packages, denoted by UID and the version ranges it depends on).

Note:

A is a "Dependent" of B if B is in A's dependency list A is a "dependency" of B if A is in B's dependency list For example consider a package Shared_library_B which is used by a package App_A. Shared_Library_B will be listed as a dependency in the sis file which installs App_A App_A cannot be installed successfully without Shared_Library_B being present. If Shared_Library_B is un-installed App_A may not function correctly. In this scenario App_A is a "dependent" of Shared_library_B Shared_library_B is a "dependency" of App_A

Parameters

RPointerArray < CSisRegistryDependency > & aDependencies The array of packages that this package depends on (i.e. its dependencies)

DependentPackagesL(RPointerArray< CSisRegistryPackage > &)

IMPORT_C void DependentPackagesL ( RPointerArray < CSisRegistryPackage > & aDependents )

Returns the array of packages which are either dependent on this package or are augmentations of this package.

Note:

A is a "Dependent" of B if B is in A's dependency list A is a "dependency" of B if A is in B's dependency list For example consider a package Shared_library_B which is used by a package App_A. Shared_Library_B will be listed as a dependency in the sis file which installs App_A App_A cannot be installed successfully without Shared_Library_B being present. If Shared_Library_B is un-installed App_A may not function correctly. App_A is a "dependent" of Shared_library_B Shared_library_B is a "dependency" of App_A

Parameters

RPointerArray < CSisRegistryPackage > & aDependents The array of packages which are either dependent on this package or are augmentations of this package (i.e. its dependents)

EmbeddedPackagesL(RPointerArray< CSisRegistryPackage > &)

IMPORT_C void EmbeddedPackagesL ( RPointerArray < CSisRegistryPackage > & aEmbedded )

For a given package entry, return a array of packages that were embedded within this package.

Parameters

RPointerArray < CSisRegistryPackage > & aEmbedded The array of embedded packages

EmbeddingPackagesL(RPointerArray< CSisRegistryPackage > &)

IMPORT_C void EmbeddingPackagesL ( RPointerArray < CSisRegistryPackage > & aEmbedding )

For a given package entry, return a array of packages that embed it. Note: This is possible when package A embeds D and the subsequently installed packages B and C each in turn embed D. As there will be a single copy and a single registration for D, it is imperative this back information is retained and it is accessible.

Parameters

RPointerArray < CSisRegistryPackage > & aEmbedding The array of embedding packages

FilesL(RPointerArray< HBufC > &)

IMPORT_C void FilesL ( RPointerArray < HBufC > & aFiles )

Provides a list of files installed by this package. This function may also return a file specification that contains wildcard characters ('?' and/or '*') if the package is a rom 'stub' sis file. Wildcard file specifications are NOT expanded and in this instance, the Count() member function on 'aFiles' cannot be used as an indicator of the number of files within the package.

Parameters

RPointerArray < HBufC > & aFiles The array of files to be populated.

HashL(const TDesC &)

IMPORT_C CHashContainer * HashL ( const TDesC & aFileName )

Returns the hash value of a selected file, identified by its name

Parameters

const TDesC & aFileName the full file path

InstalledDrivesL()

IMPORT_C TUint InstalledDrivesL ( )

Returns set of drives to which files were installed in SIS file

IsAugmentationL()

IMPORT_C TBool IsAugmentationL ( )

Indicates whether or not the package augments another package

IsDeletablePreInstalledL()

IMPORT_C TBool IsDeletablePreInstalledL ( )

Returns whether or not the package was pre-installed and files should be deleted on uninstall. This will have been set true if and only if the swipolicy indicates that preinstalled files can be deleted, and the stub sis file used to install the package was writable at install time.

IsInRomL()

IMPORT_C TBool IsInRomL ( )

Indicates whether or not the package is installed on read-only media

IsPresentL()

IMPORT_C TBool IsPresentL ( )

Indicates whether the package is currently on the device (i.e. not on removable media that is not inserted).

IsSignedBySuCertL()

IMPORT_C TBool IsSignedBySuCertL ( )

Returns ETrue if the SIS package is signed by a certificate trusted by the device (SU) for eclipsing of files on the Z drive

IsSignedL()

IMPORT_C TBool IsSignedL ( )

Indicates whether the package is signed

LanguageL()

IMPORT_C TLanguage LanguageL ( )

Gets the installed language for this package

LocalizedVendorNameL()

IMPORT_C HBufC * LocalizedVendorNameL ( )

Gets the localised vendor name of a package

Open(RSisRegistrySession &, TUid)

IMPORT_C TInt Open ( RSisRegistrySession & aSession,
TUid aUid
)

Opens the base package entry by specifying a UID.

  • A base package is a self-sufficient package which does not depend on other packages with the same UID. It is also completely removed together with all related augmentation packages.

  • An agmentation package shares a UID with a base package and 'augments' the base package. It can only be installed only when the related base package is installed It can be uninstalled separatelly (without removing base package)

Parameters

RSisRegistrySession & aSession The open RSisRegistrySession to use
TUid aUid The UID identifying the entry

Open(RSisRegistrySession &, const TDesC &, const TDesC &)

IMPORT_C TInt Open ( RSisRegistrySession & aSession,
const TDesC & aPackageName,
const TDesC & aVendorName
)

Open a registry entry (includes augmentations) by specifying a package and vendor name.

Parameters

RSisRegistrySession & aSession The open RSisRegistrySession to use
const TDesC & aPackageName The name of the package
const TDesC & aVendorName The name of the vendor

OpenL(RSisRegistrySession &, const CSisRegistryPackage &)

IMPORT_C TInt OpenL ( RSisRegistrySession & aSession,
const CSisRegistryPackage & aPackage
)

Open a registry entry (includes augmentations) by specifying a package

Parameters

RSisRegistrySession & aSession The open RSisRegistrySession to use
const CSisRegistryPackage & aPackage The package to open

PackageL()

IMPORT_C CSisRegistryPackage * PackageL ( )

Returns the package of a current entry

PackageNameL()

IMPORT_C HBufC * PackageNameL ( )

Gets the name of a package

PreInstalledL()

IMPORT_C TBool PreInstalledL ( )

Returns whether or not the package was pre-installed

PropertyL(TInt)

IMPORT_C TInt PropertyL ( TInt aKey )

Gets the value of a property within a package

Parameters

TInt aKey The key to search for

RegistryFilesL(RPointerArray< HBufC > &)

IMPORT_C void RegistryFilesL ( RPointerArray < HBufC > & aRegistryFiles )

Returns the list of files that were created internally by registry. This function is to be used to determine the list of internal files that are not to be removed for an NR package during an RFS(Restore Factory Settings).

Parameters

RPointerArray < HBufC > & aRegistryFiles The array of filenames with complete path

RemovableL()

IMPORT_C TBool RemovableL ( )

RemoveWithLastDependentL()

IMPORT_C TInt RemoveWithLastDependentL ( )

Indicates whether or not the package will be removed by uninstalling the last dependant

SelectedDriveL()

IMPORT_C TChar SelectedDriveL ( )

Returns what drive the user selected for files in the Sis file that did not specify drive.It returns KNoDriveSelected if user is not prompted for drive selection. For ROM stub packages it returns zero instead of KNoDriveSelected To determine the set of drives that files were installed to for this registry entry RSisRegistryEntry::InstalledDrivesL() . KNoDriveSelected

SendReceiveBufferLC(TInt)

HBufC8 * SendReceiveBufferLC ( TInt aMessage ) [protected]

Parameters

TInt aMessage

SendReceiveBufferLC(TInt, const TDesC &)

HBufC8 * SendReceiveBufferLC ( TInt aMessage,
const TDesC & aInputDescriptor
) [protected]

Parameters

TInt aMessage
const TDesC & aInputDescriptor

SetRemoveWithLastDependentL(TUid)

IMPORT_C void SetRemoveWithLastDependentL ( TUid uid )

This function is used to indicate the embedding package has been uninstalled but this package remained because of dependency.

Parameters

TUid uid

ShutdownAllAppsL()

IMPORT_C TBool ShutdownAllAppsL ( )

Determines whether the base package or any of the partial upgrades require all applications within this package to be to be shutdown before uninstalling the package.

SidsL(RArray< TUid > &)

IMPORT_C void SidsL ( RArray < TUid > & aSids )

Returns an array of Sids (executables). The array is supplied by the client which is then populated.

Parameters

RArray < TUid > & aSids On return, the array object to be populated.

SizeL()

IMPORT_C TInt64 SizeL ( )

Returns the size of the installation excluding the size of other embedded packages

TrustL()

IMPORT_C TSisPackageTrust TrustL ( ) const

Indicates the level of trust associated with the package

Will be replaced in the future by a more complete TrustStatusL method.

TrustStatusL()

IMPORT_C TSisTrustStatus TrustStatusL ( )

The trust status object for the entry. This supercedes information provided by the deprecated TrustL and TrustTimeStampL methods.

TrustTimeStampL()

IMPORT_C TTime TrustTimeStampL ( ) const

The time at which the trust level was established

Will be replaced in the future by a more complete TrustStatusL method.

UidL()

IMPORT_C TUid UidL ( )

Gets the UID of this package

UniqueVendorNameL()

IMPORT_C HBufC * UniqueVendorNameL ( )

Gets the unique vendor name of this package

VerifyControllerSignatureL(RPointerArray< CX509Certificate > &)

IMPORT_C TBool VerifyControllerSignatureL ( RPointerArray < CX509Certificate > & aX509CertArray )

The function is used to re-verify the signature and certificate of the SIS Controller associated to the RSisRegistryEntry object.

aX509CertArray parameter is used to give set of trusted root certificates that are used for validation of the SIS Controller certificate. If the set given as parameter is empty, Symbian implementation can fetch the set of trusted root certificates from Certificate Management. If the set is not empty, then root certificates should not be fetched from Certificate Mgmt, but only the root certificates from the set given as parameter should be used for SIS Controller certificate validation.

Parameters

RPointerArray < CX509Certificate > & aX509CertArray

VerifyControllerSignatureL(RPointerArray< CX509Certificate > &, TBool)

IMPORT_C TBool VerifyControllerSignatureL ( RPointerArray < CX509Certificate > & aX509CertArray,
TBool aCheckDateAndTime
)

The function is used to re-verify the signature and certificate of the SIS Controller associated to the RSisRegistryEntry object.

aX509CertArray parameter is used to give set of trusted root certificates that are used for validation of the SIS Controller certificate. If the set given as parameter is empty, Symbian implementation can fetch the set of trusted root certificates from Certificate Management. If the set is not empty, then root certificates should not be fetched from Certificate Mgmt, but only the root certificates from the set given as parameter should be used for SIS Controller certificate validation.

Parameters

RPointerArray < CX509Certificate > & aX509CertArray Array of trusted root certificates.
TBool aCheckDateAndTime Indicates if the certificate validity period should be checked against the current date and time.

VersionL()

IMPORT_C TVersion VersionL ( )

Gets the version of this package