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 * aParentThe 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 & aImpl1first reference to CImplementationData object
const CImplementationData & aImpl2second 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 & aImpl1first reference to CImplementationData object
const CImplementationData & aImpl2second 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 & aUidis really TUid. Cast it back before compare.
const CImplementationData & aImplDatareference to CImplementationData object

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

voidConstructL(TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased
)[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 aUidThe unique Id of the new implementation
TInt aVersionThe version number of the new implementation
HBufC * aNameThe display name of the new implementation
HBufC8 * aDataTypeThe data type supported by the new implementation
HBufC8 * aOpaqueDataData for the new implementation which is not used by the ECom framework
TDriveUnit aDriveThe drive that the new implementation is on
TBool aRomOnlyThe flag recording whether the new implementation may be loaded from ROM only
TBool aRomBasedThe 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 *)

voidConstructL(TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased,
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 aUidThe unique Id of the new implementation
TInt aVersionThe version number of the new implementation
HBufC * aNameThe display name of the new implementation
HBufC8 * aDataTypeThe data type supported by the new implementation
HBufC8 * aOpaqueDataData for the new implementation which is not used by the ECom framework
TDriveUnit aDriveThe drive that the new implementation is on
TBool aRomOnlyThe flag recording whether the new implementation may be loaded from ROM only
TBool aRomBasedThe flag recording whether the new implementation is on ROM or is a later version of one on ROM
RExtendedInterfacesArray * aExtendedInterfacesThe pointer to the array recording the extended interfaces supported by this implementation. NULL is available for PLUGIN without extended interfaces support.

ExternalizeL(RWriteStream &)

voidExternalizeL(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 & aStoreThe stream to store the data in.

InternalizeL(RReadStream &)

voidInternalizeL(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 & aStoreThe stream to read the data from.

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

CImplementationData *NewL(CInterfaceData *aParent,
TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased
)[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 * aParentA pointer to the parent instance of CInterfaceData
TUid aUidThe unique Id of the new implementation
TInt aVersionThe version number of the new implementation
HBufC * aNameThe display name of the new implementation
HBufC8 * aDataTypeThe data type supported by the new implementation
HBufC8 * aOpaqueDataData for the new implementation which is not used by the ECom framework
TDriveUnit aDriveThe drive that the new implementation is on
TBool aRomOnlyThe flag recording whether the new implementation may be loaded from ROM only
TBool aRomBasedThe 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,
TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased,
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 * aParentA pointer to the parent instance of CInterfaceData
TUid aUidThe unique Id of the new implementation
TInt aVersionThe version number of the new implementation
HBufC * aNameThe display name of the new implementation
HBufC8 * aDataTypeThe data type supported by the new implementation
HBufC8 * aOpaqueDataData for the new implementation which is not used by the ECom framework
TDriveUnit aDriveThe drive that the new implementation is on
TBool aRomOnlyThe flag recording whether the new implementation may be loaded from ROM only
TBool aRomBasedThe flag recording whether the new implementation is on ROM or is a later version of one on ROM
RExtendedInterfacesArray * aExtendedInterfacesThe 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 * aParentA 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