CImplementationInformation Class Reference

class CImplementationInformation : public CBase

The CimplementationInformation class acts as the container for the registration data relating to a particular interface implementation. Note that this class is used in both the ECOM client and server side hence the mixed API classification seen below. For the client side only the API used to extract the registration data should be used.

Inherits from

  • CImplementationInformation
Public Member Functions
~CImplementationInformation()
voidAddExtendedInterfaceL(const TUid &)
const TDesC8 &DataType()
TBool Disabled()
const TDesC &DisplayName()
TDriveUnit Drive()
voidExternalizeL(TBool, RWriteStream &)
RExtendedInterfacesArray *GetExtendedInterfaceList()
IMPORT_C voidGetExtendedInterfaceListL(RExtendedInterfacesArray &)
TUid ImplementationUid()
voidInternalizeL(TBool, RReadStream &)
CImplementationInformation *NewL(TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool)
CImplementationInformation *NewL(TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool, RExtendedInterfacesArray *)
CImplementationInformation *NewLC(TBool, RReadStream &)
const TDesC8 &OpaqueData()
TBool RomBased()
TBool RomOnly()
voidSetDisabled(TBool)
voidSetDrive(TDriveUnit)
voidSetRomBased(TBool)
voidSetVendorId(const TVendorId)
TVendorId VendorId()
TInt Version()
Private Member Functions
CImplementationInformation()
CImplementationInformation(TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool)
CImplementationInformation(TUid, TInt, HBufC *, HBufC8 *, HBufC8 *, TDriveUnit, TBool, TBool, RExtendedInterfacesArray *)
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()
Private Attributes
HBufC8 *iData
TBool iDisabled
HBufC *iDisplayName
TDriveUnit iDrive
RExtendedInterfacesArray *iExtendedInterfaceList
TUid iImplementationUid
HBufC8 *iOpaqueData
TBool iRomBased
TBool iRomOnly
TInt iVersion
TVendorId iVid

Constructor & Destructor Documentation

CImplementationInformation()

CImplementationInformation()[private]
Intended Usage : Default c'tor
Since
7.0
Pre-condition
None
Post-condition
CImplementationInformation is fully constructed.

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

CImplementationInformation(TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased
)[private]
Intended Usage : Constructor with parameters. This object takes ownership of aName, aDataType and aOpaqueData.
Since
7.0
Pre-condition
None
Post-condition
CImplementationInformation is fully constructed.

Parameters

TUid aUidThe unique Id of this implementation
TInt aVersionThe version number of this implementation
HBufC * aNameThe display name of this implementation
HBufC8 * aDataTypeThe data type supported by this implementation
HBufC8 * aOpaqueDataData for this implementation which is not used by the ECom framework
TDriveUnit aDriveThe drive which this implementation is on
TBool aRomOnlyThe flag recording whether this implementation may be loaded from ROM only
TBool aRomBasedThe flag recording whether this implementation is on ROM or is a later version of one on ROM

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

CImplementationInformation(TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased,
RExtendedInterfacesArray *aExtendedInterfaces
)[private]
Constructor with parameters. This object takes ownership of aName, aDataType, aOpaqueData and aExtendedInterfaces.
Pre-condition
None
Post-condition
CImplementationInformation is fully constructed.

Parameters

TUid aUidThe unique Id of this implementation
TInt aVersionThe version number of this implementation
HBufC * aNameThe display name of this implementation
HBufC8 * aDataTypeThe data type supported by this implementation
HBufC8 * aOpaqueDataData for this implementation which is not used by the ECom framework
TDriveUnit aDriveThe drive which this implementation is on
TBool aRomOnlyThe flag recording whether this implementation may be loaded from ROM only
TBool aRomBasedThe flag recording whether this implementation is on ROM or is a later version of one on ROM
RExtendedInterfacesArray * aExtendedInterfacesThe array recording the extended interfaces supported by this implementation. NULL is available for PLUGIN without extended interfaces support.

~CImplementationInformation()

~CImplementationInformation()
Intended Usage : D'tor
Since
7.0
Pre-condition
CImplementationInformation is fully constructed.
Post-condition
CImplementationInformation is completely destroyed.

Member Functions Documentation

AddExtendedInterfaceL(const TUid &)

voidAddExtendedInterfaceL(const TUid &aExtendedInterface)
Intended Usage : Add extended interface to list of extended interfaces
Pre-condition
CImplementationInformation is fully constructed

Parameters

const TUid & aExtendedInterface

DataType()

const TDesC8 &DataType()const [inline]
Intended Usage : Accessor for this implementation's default binary data
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

Disabled()

TBool Disabled()const [inline]
Intended Usage : Accessor for whether this implementation is currently disabled
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

DisplayName()

const TDesC &DisplayName()const [inline]
Intended Usage : Accessor for this implementation's human readable name
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

Drive()

TDriveUnit Drive()const [inline]
Intended Usage : Returns the drive that this implementation is installed on Error Condition : None
Since
7.0
Pre-condition
CImplementationInformation is fully constructed.

ExternalizeL(TBool, RWriteStream &)

voidExternalizeL(TBoolaClientSide,
RWriteStream &aStream
)const

Intended Usage : Stream out the internal state to aStream.

Error Condition : Leave with the error code.
leave
KErrNoMemory.
leave
RWriteStream.
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

Parameters

TBool aClientSidea boolean indicating whether the streaming is to performed in client/server side
RWriteStream & aStreamThe stream to store the data in.

GetExtendedInterfaceList()

RExtendedInterfacesArray *GetExtendedInterfaceList()
Intended Usage : Get extended interface list.
Pre-condition
CImplementationInformation is fully constructed

GetExtendedInterfaceListL(RExtendedInterfacesArray &)

IMPORT_C voidGetExtendedInterfaceListL(RExtendedInterfacesArray &aList)
Intended Usage : Get extended interface list.
Pre-condition
CImplementationInformation is fully constructed

Parameters

RExtendedInterfacesArray & aListThe array of the extended interfaces which are supported by this implementation.

ImplementationUid()

TUid ImplementationUid()const [inline]
Intended Usage : Accessor for this implementation's Uid
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

InternalizeL(TBool, RReadStream &)

voidInternalizeL(TBoolaClientSide,
RReadStream &aStream
)

Intended Usage : Restore the internal state from aStream.

Error Condition : Leave with the error code.
leave
KErrNoMemory.
leave
RReadStream.
Since
7.0
Pre-condition
CImplementationInformation is fully constructed.
Post-condition
CImplementationInformation is restored to the state specified by the contents of aStream.

Parameters

TBool aClientSidea boolean indicating whether the streaming is to performed in client/server side
RReadStream & aStreamThe stream to read the data from.

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

CImplementationInformation *NewL(TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased
)[static]
Intended Usage : Standardised two phase construction which leaves nothing on the cleanup stack.
leave
KErrNoMemory
Since
7.0
Post-condition
Object is fully constructed and initialised

Parameters

TUid aUidThe unique Id of this implementation
TInt aVersionThe version number of this implementation
HBufC * aNameThe display name of this implementation. This object takes ownership of aName.
HBufC8 * aDataTypeThe data type supported by this implementation. This object takes ownership of aDataType.
HBufC8 * aOpaqueDataData for this implementation which is not used by the ECom framework. This object takes ownership of aOpaqueData.
TDriveUnit aDriveThe drive that this implementation is on
TBool aRomOnlyThe flag recording whether this implementation may be loaded from ROM only
TBool aRomBasedThe flag recording whether this implementation is on ROM or is a later version of one on ROM

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

CImplementationInformation *NewL(TUidaUid,
TIntaVersion,
HBufC *aName,
HBufC8 *aDataType,
HBufC8 *aOpaqueData,
TDriveUnitaDrive,
TBoolaRomOnly,
TBoolaRomBased,
RExtendedInterfacesArray *aExtendedInterfaces
)[static]
Standardised two phase construction which leaves nothing on the cleanup stack.
leave
KErrNoMemory
Post-condition
Object is fully constructed and initialised

Parameters

TUid aUidThe unique Id of this implementation
TInt aVersionThe version number of this implementation
HBufC * aNameThe display name of this implementation. This object takes ownership of aName.
HBufC8 * aDataTypeThe data type supported by this implementation. This object takes ownership of aDataType.
HBufC8 * aOpaqueDataData for this implementation which is not used by the ECom framework. This object takes ownership of aOpaqueData.
TDriveUnit aDriveThe drive that this implementation is on
TBool aRomOnlyThe flag recording whether this implementation may be loaded from ROM only
TBool aRomBasedThe flag recording whether this 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. This object takes ownership of aExtendedInterfaces. NULL is available for PLUGIN without extended interfaces support.

NewLC(TBool, RReadStream &)

CImplementationInformation *NewLC(TBoolaClientSide,
RReadStream &aStream
)[static]
Intended Usage : Standardised two phase constructor which leaves the CImplementationInformation pointer upon the cleanup stack.
leave
KErrNoMemory
Since
7.0
Post-condition
Object is fully constructed and initialised

Parameters

TBool aClientSidea boolean indicating whether the streaming is to performed in client/server side
RReadStream & aStreamThe stream to internalize this object from

OpaqueData()

const TDesC8 &OpaqueData()const [inline]
Intended Usage : Accessor for this implementation's opaque binary data
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

RomBased()

TBool RomBased()const [inline]
Intended Usage : Accessor for whether this implementation is on ROM or is a later version of one on ROM
Pre-condition
CImplementationInformation is fully constructed

RomOnly()

TBool RomOnly()const [inline]
Intended Usage : Accessor for whether this implementation is to be loaded from ROM only
Pre-condition
CImplementationInformation is fully constructed

SetDisabled(TBool)

voidSetDisabled(TBoolaDisabled)[inline]
Intended Usage : Marks this implementation as disabled, or enabled. Note that this function should not be used by any ECOM client side as it will have no effect at all on the implementation information stored in the server side.
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized
Post-condition
Implementation is marked as.

Parameters

TBool aDisabledETrue to indicate this implementation should be disabled, EFalse for enabled.

SetDrive(TDriveUnit)

voidSetDrive(TDriveUnitaDrive)

Parameters

TDriveUnit aDrive

SetRomBased(TBool)

voidSetRomBased(TBoolaRomBased)
Intended Usage : Set whether this implementation is on ROM or is a later version of one on ROM
Pre-condition
CImplementationInformation is fully constructed

Parameters

TBool aRomBased

SetVendorId(const TVendorId)

voidSetVendorId(const TVendorIdaVid)[inline]
Intended Usage: Sets the VID of the plug-in that this implementation belongs to. The VID is the VendorId for the plug-in's DLL.
Pre-condition
CImplementationInformation is fully constructed

Parameters

const TVendorId aVidVendorId of the plug-in that this implementation belongs to.

VendorId()

TVendorId VendorId()const [inline]
Intended Usage: Returns the VID of the plug-in that this implementation belongs to. The VID is the VendorId for the plug-in's DLL
Pre-condition
CImplementationInformation is fully constructed

Version()

TInt Version()const [inline]
Intended Usage : Accessor for the version number of this implementation
Since
7.0
Pre-condition
CImplementationInformation is fully constructed and initialized

Member Data Documentation

HBufC8 * iData

HBufC8 *iData[private]

The type of data this implementation is registered to handle : Used for matching against the run-time cue provided by the client during default interface implementation resolution.

TBool iDisabled

TBool iDisabled[private]

The flag recording if this implementation is disabled or enabled

HBufC * iDisplayName

HBufC *iDisplayName[private]

This implementations human readable name intended for display in UI implementations

TDriveUnit iDrive

TDriveUnit iDrive[private]

The drive that this plug-in resides on

RExtendedInterfacesArray * iExtendedInterfaceList

RExtendedInterfacesArray *iExtendedInterfaceList[private]

Array of extended interfaces.

TUid iImplementationUid

TUid iImplementationUid[private]

The implementation UID

HBufC8 * iOpaqueData

HBufC8 *iOpaqueData[private]

Data registered for this implementation which can be used by the client during non-default resolution operations but is ignored by the framework.

TBool iRomBased

TBool iRomBased[private]

This flag records whether this implementation was discovered on read-only internal media or that it is a later version of one that was

TBool iRomOnly

TBool iRomOnly[private]

The flag recording whether this implementation may only be loaded from read-only internal media

TInt iVersion

TInt iVersion[private]

The implementation version

TVendorId iVid

TVendorId iVid[private]

The Vendor ID of the plug-in which this implementation belongs to