Swi::Sis::CController Class Reference

class Swi::Sis::CController : public Swi::Sis::CField

This class represents a Controller. This is a structure found in files. It is described in SGL.GT0188.251.

Inherits from

Public Member Functions
~CController ()
IMPORT_C void AddChainIndex ( TInt )
const CCertChainConstraints * CertChainConstraints ()
const RArray < TInt > & CertChainIndices ()
IMPORT_C void ClearCertChainIndices ()
TUint32 DataIndex ()
TInt64 DataOffset ()
IMPORT_C CMessageDigest * GenerateControllerHashLC (const TDesC8 &)
const CInfo & Info ()
const CInstallBlock & InstallBlock ()
TBool IsSignedBySuCert ()
const CLogo * Logo ()
IMPORT_C CController * NewL ( MSisDataProvider &, TReadTypeBehaviour )
IMPORT_C CController * NewL ( MSisDataProvider &, TInt64 &, TReadTypeBehaviour )
IMPORT_C CController * NewL ( TPtrProvider &, TReadTypeBehaviour )
IMPORT_C CController * NewL ( TPtrProvider &, TInt64 &, TReadTypeBehaviour )
IMPORT_C CController * NewLC ( MSisDataProvider &, TInt64 &, TReadTypeBehaviour )
IMPORT_C CController * NewLC ( MSisDataProvider &, TReadTypeBehaviour )
IMPORT_C CController * NewLC ( TPtrProvider &, TReadTypeBehaviour )
IMPORT_C CController * NewLC ( TPtrProvider &, TInt64 &, TReadTypeBehaviour )
const CPrerequisites & Prerequisites ()
const CProperties & Properties ()
IMPORT_C TInt RemoveWithLastDependent ()
IMPORT_C void SetCertChainConstraints ( CCertChainConstraints *)
IMPORT_C void SetRemoveWithLastDependent ()
void SetSignedBySuCert ( TBool )
void SetTrust ( TSisPackageTrust )
const RPointerArray < CSignatureCertificateChain > & SignatureCertificateChains ()
const CSupportedLanguages & SupportedLanguages ()
const CSupportedOptions & SupportedOptions ()
TSisPackageTrust Trust ()
TSisTrustStatus & TrustStatus ()
Private Member Functions
CController ()
void ConstructL ( MSisDataProvider &, TInt64 &, TReadTypeBehaviour )
void ConstructL ( TPtrProvider &, TInt64 &, TReadTypeBehaviour )
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Swi::Sis::CField::CField()
Swi::Sis::CField::CalculateCrcL(MSisDataProvider &,const TInt64,TUint16 &)
Swi::Sis::CField::CheckedReadL(MSisDataProvider &,TDes8 &,TInt,TInt64 &)
Swi::Sis::CField::CheckedReadL(MSisDataProvider &,TDes8 &,TInt64 &)
Swi::Sis::CField::ConstructL(MSisDataProvider &,TFieldType,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::ConstructL(TPtrProvider &,TFieldType,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::CreateHeader(TFieldType,TFieldLength,TDes8 &)
Swi::Sis::CField::EnsureAlignedL(MSisDataProvider &,TInt64,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::EnsureAlignedL(TPtrProvider &,TInt64,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::FieldType()const
Swi::Sis::CField::HeaderSize(TArrayStatus)const
Swi::Sis::CField::Length()const
Swi::Sis::CField::PaddingSize()const
Swi::Sis::CField::ReadEnumL(MSisDataProvider &,EnumType &,TInt64 &)
Swi::Sis::CField::ReadEnumL(TPtrProvider &,EnumType &,TInt64 &)
Swi::Sis::CField::ReadMemberArrayL(MSisDataProvider &,RPointerArray< T > &,TFieldType,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::ReadMemberArrayL(TPtrProvider &,RPointerArray< T > &,TFieldType,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::ReadMemberCollectionL(MSisDataProvider &,RPointerArray< T > &,TFieldType,TFieldType,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::ReadMemberCollectionL(TPtrProvider &,RPointerArray< T > &,TFieldType,TFieldType,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::ReadTTypeL(MSisDataProvider &,T &,TInt64 &)
Swi::Sis::CField::ReadTTypeL(TPtrProvider &,T &,TInt64 &)
Swi::Sis::CField::SkipUnknownFieldsL(MSisDataProvider &,TInt64,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::SkipUnknownFieldsL(TPtrProvider &,TInt64,TInt64 &,TReadTypeBehaviour)
Swi::Sis::CField::~CField()
Inherited Enumerations
Swi::Sis::CField:TArrayStatus
Private Attributes
CCertChainConstraints * iCertChainConstraints
RArray < TInt > iCertChainIndices
CDataIndex * iDataIndex
TInt64 iDataOffset
TBool iHasExe
CInfo * iInfo
CInstallBlock * iInstallBlock
CSupportedLanguages * iLanguages
CLogo * iLogo
CPrerequisites * iPrerequisites
CProperties * iProperties
TInt iRemoveWithLastDependent
RPointerArray < CSignatureCertificateChain > iSignatureCertificateChains
TBool iSignedBySuCert
CSupportedOptions * iSupportedOptions
TSisPackageTrust iTrust
TSisTrustStatus * iTrustStatus

Constructor & Destructor Documentation

CController()

CController ( ) [private]

~CController()

IMPORT_C ~CController ( ) [virtual]

Member Functions Documentation

AddChainIndex(TInt)

IMPORT_C void AddChainIndex ( TInt aIndex ) const

Parameters

TInt aIndex

CertChainConstraints()

const CCertChainConstraints * CertChainConstraints ( ) const [inline]

Get the instance of the CCertChainConstraint.

CertChainIndices()

const RArray < TInt > & CertChainIndices ( ) const [inline]

ClearCertChainIndices()

IMPORT_C void ClearCertChainIndices ( ) const

ConstructL(MSisDataProvider &, TInt64 &, TReadTypeBehaviour)

void ConstructL ( MSisDataProvider & aDataProvider,
TInt64 & aBytesRead,
TReadTypeBehaviour aTypeReadBehaviour
) [private]

The second-phase constructor.

Parameters

MSisDataProvider & aDataProvider An instance of a MSisDataProvider to read the entity from.
TInt64 & aBytesRead
TReadTypeBehaviour aTypeReadBehaviour Whether we need to check the sis type or not.

ConstructL(TPtrProvider &, TInt64 &, TReadTypeBehaviour)

void ConstructL ( TPtrProvider & aDataProvider,
TInt64 & aBytesRead,
TReadTypeBehaviour aTypeReadBehaviour
) [private]

The second-phase in-place constructor.

Parameters

TPtrProvider & aDataProvider An instance of a TPtrProvider to read the entity from.
TInt64 & aBytesRead
TReadTypeBehaviour aTypeReadBehaviour Whether we need to check the sis type or not.

DataIndex()

TUint32 DataIndex ( ) const [inline]

DataOffset()

TInt64 DataOffset ( ) const [inline]

GenerateControllerHashLC(const TDesC8 &)

IMPORT_C CMessageDigest * GenerateControllerHashLC ( const TDesC8 & aController )

Generate a hash for the controller from SISInfo (without the length) to SISInstallBlock (i.e. except the SISSignatueCertificateChain and SISDataIndex)

Parameters

const TDesC8 & aController SISController raw data

Info()

const CInfo & Info ( ) const [inline]

Every SISController includes a SISInfo structure which can be accessed using this function.

InstallBlock()

const CInstallBlock & InstallBlock ( ) const [inline]

Every SISController includes a SISInstallBlock structure which can be accessed using this function.

IsSignedBySuCert()

TBool IsSignedBySuCert ( ) const [inline]

Get the System upgrade Cert status associated the SIS package handled by this controller

Logo()

const CLogo * Logo ( ) const [inline]

A SISController may contain a SISLogo structure, it can be accessed using this function.

NewL(MSisDataProvider &, TReadTypeBehaviour)

IMPORT_C CController * NewL ( MSisDataProvider & aDataProvider,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object.

Parameters

MSisDataProvider & aDataProvider An instance of a MSisDataProvider to read the entity from.
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewL(MSisDataProvider &, TInt64 &, TReadTypeBehaviour)

IMPORT_C CController * NewL ( MSisDataProvider & aDataProvider,
TInt64 & aBytesRead,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object.

Parameters

MSisDataProvider & aDataProvider An instance of a MSisDataProvider to read the entity from.
TInt64 & aBytesRead
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewL(TPtrProvider &, TReadTypeBehaviour)

IMPORT_C CController * NewL ( TPtrProvider & aDataProvider,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object.

Parameters

TPtrProvider & aDataProvider An instance of TPtrProvider to read the controller from.
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewL(TPtrProvider &, TInt64 &, TReadTypeBehaviour)

IMPORT_C CController * NewL ( TPtrProvider & aDataProvider,
TInt64 & aBytesRead,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object in place.

Parameters

TPtrProvider & aDataProvider An instance of TPtrProvider to read the controller from.
TInt64 & aBytesRead
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewLC(MSisDataProvider &, TInt64 &, TReadTypeBehaviour)

IMPORT_C CController * NewLC ( MSisDataProvider & aDataProvider,
TInt64 & aBytesRead,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object and places it on the cleanup stack.

Parameters

MSisDataProvider & aDataProvider An instance of a MSisDataProvider to read the entity from.
TInt64 & aBytesRead
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewLC(MSisDataProvider &, TReadTypeBehaviour)

IMPORT_C CController * NewLC ( MSisDataProvider & aDataProvider,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object and places it on the cleanup stack.

Parameters

MSisDataProvider & aDataProvider An instance of a MSisDataProvider to read the entity from.
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewLC(TPtrProvider &, TReadTypeBehaviour)

IMPORT_C CController * NewLC ( TPtrProvider & aDataProvider,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object and places it on the cleanup stack.

Parameters

TPtrProvider & aDataProvider An instance of TPtrProvider to read the controller from.
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

NewLC(TPtrProvider &, TInt64 &, TReadTypeBehaviour)

IMPORT_C CController * NewLC ( TPtrProvider & aDataProvider,
TInt64 & aBytesRead,
TReadTypeBehaviour aTypeReadBehaviour = EReadType
) [static]

This creates a new CController object in place and places it on the cleanup stack.

Parameters

TPtrProvider & aDataProvider An instance of TPtrProvider to read the controller from.
TInt64 & aBytesRead
TReadTypeBehaviour aTypeReadBehaviour = EReadType Whether we need to check the sis type or not.

Prerequisites()

const CPrerequisites & Prerequisites ( ) const [inline]

Every SISController includes a list of prerequisites which must be met for the installation to proceed. Note that, although a CPrerequisites object is always constructed, this might be empty, e.g. no prerequisites are present.

Properties()

const CProperties & Properties ( ) const [inline]

Every SISController includes a list of supported properties encoded in a SISSupportedProperties structure which can be accessed using this function. Note that, although a CProperties object is always constructed, this might be empty, e.g. no properties are present.

RemoveWithLastDependent()

IMPORT_C TInt RemoveWithLastDependent ( ) const

Provide whether the package will be uninstalled after uninstalling last dependent

SetCertChainConstraints(CCertChainConstraints *)

IMPORT_C void SetCertChainConstraints ( CCertChainConstraints * aConstraints )

This sets the instance of the CCertChainConstraint.

Parameters

CCertChainConstraints * aConstraints

SetRemoveWithLastDependent()

IMPORT_C void SetRemoveWithLastDependent ( )

Set the status which determines whether the package will be uninstalled after uninstalling last dependent.

SetSignedBySuCert(TBool)

void SetSignedBySuCert ( TBool aSignedBySuCert ) [inline]

Set the System upgrade Cert validation status associated the SIS package handled by this controller

Parameters

TBool aSignedBySuCert The TBool to be associated with the package

SetTrust(TSisPackageTrust)

void SetTrust ( TSisPackageTrust aTrust ) [inline]

Set the trust associated the SIS package handled by this controller

Parameters

TSisPackageTrust aTrust The TSisPackageTrust to be associated with the package

SignatureCertificateChains()

const RPointerArray < CSignatureCertificateChain > & SignatureCertificateChains ( ) const [inline]

A controller can be signed multiple times. A signature/certificate for a given controller is encoded in a SISSignatureCertificateChain structure. This function returns a list of such structure as an array. Note that if the controller is not signed the returned array will be empty.

SupportedLanguages()

const CSupportedLanguages & SupportedLanguages ( ) const [inline]

Every SISController includes a list of supported language encoded in a SISSupportedLanguages structure which can be accessed using this function. In a well formed SIS file this structure cannot be empty as there must always be a supported language.

SupportedOptions()

const CSupportedOptions & SupportedOptions ( ) const [inline]

Every SISController includes a list of supported options encoded in a SISSupportedOptions structure which can be accessed using this function. Note that, although a CSupportedOptions object is always constructed, this might be empty, e.g. no options are present.

Trust()

TSisPackageTrust Trust ( ) const [inline]

Get the trust associated the SIS package handled by this controller

TrustStatus()

TSisTrustStatus & TrustStatus ( ) const [inline]

Provide the trust status object describing the controller.

This member is not part of the SIS file structure but is information about it that needs to travel through the SWIS. The object is returned non-const from a const member as it is a mutable member of CController .

Member Data Documentation

CCertChainConstraints * iCertChainConstraints

CCertChainConstraints * iCertChainConstraints [private]

RArray< TInt > iCertChainIndices

RArray < TInt > iCertChainIndices [private]

Contains the indexes of the chains check for revocation at install time

CDataIndex * iDataIndex

CDataIndex * iDataIndex [private]

TInt64 iDataOffset

TInt64 iDataOffset [private]

TBool iHasExe

TBool iHasExe [private]

CInfo * iInfo

CInfo * iInfo [private]

CInstallBlock * iInstallBlock

CInstallBlock * iInstallBlock [private]

CSupportedLanguages * iLanguages

CSupportedLanguages * iLanguages [private]

CLogo * iLogo

CLogo * iLogo [private]

CPrerequisites * iPrerequisites

CPrerequisites * iPrerequisites [private]

CProperties * iProperties

CProperties * iProperties [private]

TInt iRemoveWithLastDependent

TInt iRemoveWithLastDependent [private]

RPointerArray< CSignatureCertificateChain > iSignatureCertificateChains

RPointerArray < CSignatureCertificateChain > iSignatureCertificateChains [private]

TBool iSignedBySuCert

TBool iSignedBySuCert [private]

CSupportedOptions * iSupportedOptions

CSupportedOptions * iSupportedOptions [private]

TSisPackageTrust iTrust

TSisPackageTrust iTrust [private]

TSisTrustStatus * iTrustStatus

TSisTrustStatus * iTrustStatus [private]