CRegistryData::CImplementationData Class Reference

class CRegistryData::CImplementationData : public CBase

This wrapper class is needed, to create a 2 way relationship between CInterfaceData and the public CImplementationInformation objects. It holds a reference to an implementation and a reference to its parent interface data.

Inherits from

  • CRegistryData::CImplementationData

Constructor & Destructor Documentation

CImplementationData(CInterfaceData *)

CImplementationData ( CInterfaceData * aParent ) [private]
Constructor for CImplementationData
Post-condition
Its member variables are initialised

Parameters

CInterfaceData * aParent The parent interface data of this implementation

~CImplementationData()

~CImplementationData ( )

Destructor of CImplementationData

Member Functions Documentation

CompareImplUid(const CImplementationData &, const CImplementationData &)

TInt CompareImplUid ( const CImplementationData & aImpl1,
const CImplementationData & aImpl2
) [static]
This method determines the order of two CImplementationData objects. For backward compatibility reason, ECom allows different I/Fs using the same implementation UID for when the device has an implementation UID that is not unique. Although this is not a valid or supported situation ECOM server should be robust. FindImplementation CompareTUidValues
Pre-condition
This object is fully constructed

Parameters

const CImplementationData & aImpl1 first reference to CImplementationData object
const CImplementationData & aImpl2 second reference to CImplementationData object

CompareImplUidIgnoreIfUid(const CImplementationData &, const CImplementationData &)

TInt CompareImplUidIgnoreIfUid ( const CImplementationData & aImpl1,
const CImplementationData & aImpl2
) [static]
Similar to CompareImplUid above. This comparer only compare the Impl UID and ignore the I/F UID part.
Pre-condition
This object is fully constructed

Parameters

const CImplementationData & aImpl1 first reference to CImplementationData object
const CImplementationData & aImpl2 second reference to CImplementationData object

CompareUidAgainstImplData(const CImplementationData &, const CImplementationData &)

TInt CompareUidAgainstImplData ( const CImplementationData & aUid,
const CImplementationData & aImplData
) [static]

This method determines the order of an CImplementationData object in relation to aUid.

Parameters

const CImplementationData & aUid is really TUid. Cast it back before compare.
const CImplementationData & aImplData reference to CImplementationData object

ConstructL(TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool)

void ConstructL ( TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased
) [private]
The object's memory has been allocated.
Pre-condition
This object is fully constructed.
Post-condition
This object is fully constructed and initialized.

Parameters

TUid aUid The unique Id of the new implementation
TInt aVersion The version number of the new implementation
HBufC * aName The display name of the new implementation
HBufC8 * aDataType The data type supported by the new implementation
HBufC8 * aOpaqueData Data for the new implementation which is not used by the ECom framework
TDriveUnit aDrive The drive that the new implementation is on
TBool aRomOnly The flag recording whether the new implementation may be loaded from ROM only
TBool aRomBased The flag recording whether the new implementation is on ROM or is a later version of one on ROM

ConstructL(TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool, RExtendedInterfacesArray *)

void ConstructL ( TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased,
RExtendedInterfacesArray * aExtendedInterfaces
) [private]
The object's memory has been allocated.
Pre-condition
This object is fully constructed.
Post-condition
This object is fully constructed and initialized.

Parameters

TUid aUid The unique Id of the new implementation
TInt aVersion The version number of the new implementation
HBufC * aName The display name of the new implementation
HBufC8 * aDataType The data type supported by the new implementation
HBufC8 * aOpaqueData Data for the new implementation which is not used by the ECom framework
TDriveUnit aDrive The drive that the new implementation is on
TBool aRomOnly The flag recording whether the new implementation may be loaded from ROM only
TBool aRomBased The flag recording whether the new implementation is on ROM or is a later version of one on ROM
RExtendedInterfacesArray * aExtendedInterfaces The pointer to the array recording the extended interfaces supported by this implementation. NULL is available for PLUGIN without extended interfaces support.

ExternalizeL(RWriteStream &)

void ExternalizeL ( RWriteStream & aStore ) const
Writes out the state of this member variable of type CImplementationInformation to aStore.
Pre-condition
This object is fully constructed.

Parameters

RWriteStream & aStore The stream to store the data in.

InternalizeL(RReadStream &)

void InternalizeL ( RReadStream & aStore )
Initialises member variable with the CImplementationInformation state specified in aStore.
Pre-condition
This object is full constructed.
Post-condition
This object is set to the state specified in aStore.

Parameters

RReadStream & aStore The stream to read the data from.

NewL(CInterfaceData *, TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool)

CImplementationData * NewL ( CInterfaceData * aParent,
TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased
) [static]
Creates a new CImplemenatationData object. It takes parameters to create a CImplementationInformation object, during 2nd phase construction and initializes iImplInfo to reference to this CImplementationInformation object.
Post-condition
This object is fully constructed and initialized.

Parameters

CInterfaceData * aParent A pointer to the parent instance of CInterfaceData
TUid aUid The unique Id of the new implementation
TInt aVersion The version number of the new implementation
HBufC * aName The display name of the new implementation
HBufC8 * aDataType The data type supported by the new implementation
HBufC8 * aOpaqueData Data for the new implementation which is not used by the ECom framework
TDriveUnit aDrive The drive that the new implementation is on
TBool aRomOnly The flag recording whether the new implementation may be loaded from ROM only
TBool aRomBased The flag recording whether the new implementation is on ROM or is a later version of one on ROM

NewL(CInterfaceData *, TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool, RExtendedInterfacesArray *)

CImplementationData * NewL ( CInterfaceData * aParent,
TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased,
RExtendedInterfacesArray * aExtendedInterfaces
) [static]
Creates a new CImplemenatationData object. It takes parameters to create a CImplementationInformation object, during 2nd phase construction and initializes iImplInfo to reference to this CImplementationInformation object.
Post-condition
This object is fully constructed and initialized.

Parameters

CInterfaceData * aParent A pointer to the parent instance of CInterfaceData
TUid aUid The unique Id of the new implementation
TInt aVersion The version number of the new implementation
HBufC * aName The display name of the new implementation
HBufC8 * aDataType The data type supported by the new implementation
HBufC8 * aOpaqueData Data for the new implementation which is not used by the ECom framework
TDriveUnit aDrive The drive that the new implementation is on
TBool aRomOnly The flag recording whether the new implementation may be loaded from ROM only
TBool aRomBased The flag recording whether the new implementation is on ROM or is a later version of one on ROM
RExtendedInterfacesArray * aExtendedInterfaces The pointer to the array recording the extended interfaces supported by this implementation. NULL is available for PLUGIN without extended interfaces support.

NewLC(CInterfaceData *)

CImplementationData * NewLC ( CInterfaceData * aParent ) [static]
Creates a new CImplemenatationData object. Note that CImplementationInformation needs to be constructed too, for this object to be fully constructed.
Post-condition
This object is partly constructed and initialized and is on the CleanupStack .

Parameters

CInterfaceData * aParent A pointer to the parent instance of CInterfaceData

Member Data Documentation

CImplementationInformation * iImplInfo

CImplementationInformation * iImplInfo

A pointer to the implementation

CInterfaceData * iParent

CInterfaceData * iParent

Pointer to the parent CInterfaceData