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

Public Member Functions
~CImplementationInformation ()
void AddExtendedInterfaceL (const TUid &)
const TDesC8 & DataType ()
TBool Disabled ()
const TDesC & DisplayName ()
TDriveUnit Drive ()
void ExternalizeL ( TBool , RWriteStream &)
RExtendedInterfacesArray * GetExtendedInterfaceList ()
IMPORT_C void GetExtendedInterfaceListL ( RExtendedInterfacesArray &)
TUid ImplementationUid ()
void InternalizeL ( 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 ()
void SetDisabled ( TBool )
void SetDrive ( TDriveUnit )
void SetRomBased ( TBool )
void SetVendorId (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 ( TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased
) [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 aUid The unique Id of this implementation
TInt aVersion The version number of this implementation
HBufC * aName The display name of this implementation
HBufC8 * aDataType The data type supported by this implementation
HBufC8 * aOpaqueData Data for this implementation which is not used by the ECom framework
TDriveUnit aDrive The drive which this implementation is on
TBool aRomOnly The flag recording whether this implementation may be loaded from ROM only
TBool aRomBased The 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 ( TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased,
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 aUid The unique Id of this implementation
TInt aVersion The version number of this implementation
HBufC * aName The display name of this implementation
HBufC8 * aDataType The data type supported by this implementation
HBufC8 * aOpaqueData Data for this implementation which is not used by the ECom framework
TDriveUnit aDrive The drive which this implementation is on
TBool aRomOnly The flag recording whether this implementation may be loaded from ROM only
TBool aRomBased The flag recording whether this implementation is on ROM or is a later version of one on ROM
RExtendedInterfacesArray * aExtendedInterfaces The 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 &)

void AddExtendedInterfaceL ( 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 &)

void ExternalizeL ( TBool aClientSide,
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 aClientSide a boolean indicating whether the streaming is to performed in client/server side
RWriteStream & aStream The 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 void GetExtendedInterfaceListL ( RExtendedInterfacesArray & aList )
Intended Usage : Get extended interface list.
Pre-condition
CImplementationInformation is fully constructed

Parameters

RExtendedInterfacesArray & aList The 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 &)

void InternalizeL ( TBool aClientSide,
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 aClientSide a boolean indicating whether the streaming is to performed in client/server side
RReadStream & aStream The stream to read the data from.

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

CImplementationInformation * NewL ( TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased
) [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 aUid The unique Id of this implementation
TInt aVersion The version number of this implementation
HBufC * aName The display name of this implementation. This object takes ownership of aName.
HBufC8 * aDataType The data type supported by this implementation. This object takes ownership of aDataType.
HBufC8 * aOpaqueData Data for this implementation which is not used by the ECom framework. This object takes ownership of aOpaqueData.
TDriveUnit aDrive The drive that this implementation is on
TBool aRomOnly The flag recording whether this implementation may be loaded from ROM only
TBool aRomBased The 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 ( TUid aUid,
TInt aVersion,
HBufC * aName,
HBufC8 * aDataType,
HBufC8 * aOpaqueData,
TDriveUnit aDrive,
TBool aRomOnly,
TBool aRomBased,
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 aUid The unique Id of this implementation
TInt aVersion The version number of this implementation
HBufC * aName The display name of this implementation. This object takes ownership of aName.
HBufC8 * aDataType The data type supported by this implementation. This object takes ownership of aDataType.
HBufC8 * aOpaqueData Data for this implementation which is not used by the ECom framework. This object takes ownership of aOpaqueData.
TDriveUnit aDrive The drive that this implementation is on
TBool aRomOnly The flag recording whether this implementation may be loaded from ROM only
TBool aRomBased The flag recording whether this 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. This object takes ownership of aExtendedInterfaces. NULL is available for PLUGIN without extended interfaces support.

NewLC(TBool, RReadStream &)

CImplementationInformation * NewLC ( TBool aClientSide,
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 aClientSide a boolean indicating whether the streaming is to performed in client/server side
RReadStream & aStream The 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)

void SetDisabled ( TBool aDisabled ) [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 aDisabled ETrue to indicate this implementation should be disabled, EFalse for enabled.

SetDrive(TDriveUnit)

void SetDrive ( TDriveUnit aDrive )

Parameters

TDriveUnit aDrive

SetRomBased(TBool)

void SetRomBased ( TBool aRomBased )
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)

void SetVendorId ( const TVendorId aVid ) [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 aVid VendorId 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