RBusLogicalChannel Class Reference

class RBusLogicalChannel : public RHandleBase

The user-side handle to a logical channel.

The class provides functions that are used to open a channel to a device driver, and to make requests. A device driver provides a derived class to give the user-side a tailored interface to the driver.

Inherits from

Public Member Functions
IMPORT_C TIntOpen(RMessagePtr2, TInt, TOwnerType)
IMPORT_C TIntOpen(TInt, TOwnerType)
Protected Member Functions
IMPORT_C voidDoCancel(TUint)
IMPORT_C TIntDoControl(TInt)
IMPORT_C TIntDoControl(TInt, TAny *)
IMPORT_C TIntDoControl(TInt, TAny *, TAny *)
TInt DoCreate(const TDesC &, const TVersion &, TInt, const TDesC *, const TDesC8 *, TOwnerType, TBool)
IMPORT_C voidDoRequest(TInt, TRequestStatus &)
IMPORT_C voidDoRequest(TInt, TRequestStatus &, TAny *)
IMPORT_C voidDoRequest(TInt, TRequestStatus &, TAny *, TAny *)
TInt DoSvControl(TInt)
TInt DoSvControl(TInt, TAny *)
TInt DoSvControl(TInt, TAny *, TAny *)
Private Member Functions
IMPORT_C TIntDoCreate(const TDesC &, const TVersion &, TInt, const TDesC *, const TDesC8 *, TInt)
Inherited Functions
RHandleBase::Attributes()const
RHandleBase::BTraceId()const
RHandleBase::Close()
RHandleBase::DoExtendedClose()
RHandleBase::Duplicate(const RThread &,TOwnerType)
RHandleBase::FullName()const
RHandleBase::FullName(TDes &)const
RHandleBase::Handle()const
RHandleBase::HandleInfo(THandleInfo *)
RHandleBase::Name()const
RHandleBase::NotifyDestruction(TRequestStatus &)
RHandleBase::Open(const TFindHandleBase &,TOwnerType)
RHandleBase::OpenByName(const TDesC &,TOwnerType,TInt)
RHandleBase::RHandleBase()
RHandleBase::RHandleBase(TInt)
RHandleBase::SetHandle(TInt)
RHandleBase::SetHandleNC(TInt)
RHandleBase::SetReturnedHandle(TInt)
RHandleBase::SetReturnedHandle(TInt,RHandleBase &)
Inherited Enumerations
RHandleBase:TAttributes
Private Attributes
TInt iPadding1
TInt iPadding2
Inherited Attributes
RHandleBase::iHandle

Member Functions Documentation

DoCancel(TUint)

IMPORT_C voidDoCancel(TUintaReqMask)[protected]

Parameters

TUint aReqMask

DoControl(TInt)

IMPORT_C TIntDoControl(TIntaFunction)[protected]

Parameters

TInt aFunction

DoControl(TInt, TAny *)

IMPORT_C TIntDoControl(TIntaFunction,
TAny *a1
)[protected]

Parameters

TInt aFunction
TAny * a1

DoControl(TInt, TAny *, TAny *)

IMPORT_C TIntDoControl(TIntaFunction,
TAny *a1,
TAny *a2
)[protected]

Parameters

TInt aFunction
TAny * a1
TAny * a2

DoCreate(const TDesC &, const TVersion &, TInt, const TDesC *, const TDesC8 *, TOwnerType, TBool)

TInt DoCreate(const TDesC &aDevice,
const TVersion &aVer,
TIntaUnit,
const TDesC *aDriver,
const TDesC8 *anInfo,
TOwnerTypeaType = EOwnerProcess,
TBoolaProtected = EFalse
)[protected, inline]

Creates the logical channel.

KErrNone, if successful; otherwise one of the other system wide error codes.

Parameters

const TDesC & aDeviceThe name of the logical device for which the channel is to be constructed. This is the name by which the LDD factory object, i.e. the instance of the DLogicalDevice derived class, is known.
const TVersion & aVerThe required version of the logical device. The driver normally checks this against the version of the logical channel, returning KErrNotSupported if the logical channel is not compatible.
TInt aUnitA unit of the device. This argument only has meaning if the flag KDeviceAllowUnit is set in the iParseMask data member of the LDD factory object.
const TDesC * aDriverA pointer to a descriptor containing the name of a physical device. This is the name by which the PDD factory object, i.e. the instance of the DPhysicalDevice derived class, is known. This is NULL, if no explicit name is to be supplied, or the logical device does not require an accompanying physical device.
const TDesC8 * anInfoA pointer to an explicit 8-bit descriptor containing extra information for the physical device. This argument only has meaning if the KDeviceAllowInfo flag is set in the iParseMask data member of the LDD factory object.
TOwnerType aType = EOwnerProcessAn enumeration whose enumerators define the ownership of this handle. If not explicitly specified, EOwnerProcess is taken as default.
TBool aProtected = EFalseIf false, the channel is created as an object which is local/private to the current process. If true, the channel is an object which may be shared with other processes using the IPC mechanisms for handle passing.

DoCreate(const TDesC &, const TVersion &, TInt, const TDesC *, const TDesC8 *, TInt)

IMPORT_C TIntDoCreate(const TDesC &aDevice,
const TVersion &aVer,
TIntaUnit,
const TDesC *aDriver,
const TDesC8 *aInfo,
TIntaType
)[private]

Parameters

const TDesC & aDevice
const TVersion & aVer
TInt aUnit
const TDesC * aDriver
const TDesC8 * aInfo
TInt aType

DoRequest(TInt, TRequestStatus &)

IMPORT_C voidDoRequest(TIntaReqNo,
TRequestStatus &aStatus
)[protected]

Parameters

TInt aReqNo
TRequestStatus & aStatus

DoRequest(TInt, TRequestStatus &, TAny *)

IMPORT_C voidDoRequest(TIntaReqNo,
TRequestStatus &aStatus,
TAny *a1
)[protected]

Parameters

TInt aReqNo
TRequestStatus & aStatus
TAny * a1

DoRequest(TInt, TRequestStatus &, TAny *, TAny *)

IMPORT_C voidDoRequest(TIntaReqNo,
TRequestStatus &aStatus,
TAny *a1,
TAny *a2
)[protected]

Parameters

TInt aReqNo
TRequestStatus & aStatus
TAny * a1
TAny * a2

DoSvControl(TInt)

TInt DoSvControl(TIntaFunction)[protected, inline]

Parameters

TInt aFunction

DoSvControl(TInt, TAny *)

TInt DoSvControl(TIntaFunction,
TAny *a1
)[protected, inline]

Parameters

TInt aFunction
TAny * a1

DoSvControl(TInt, TAny *, TAny *)

TInt DoSvControl(TIntaFunction,
TAny *a1,
TAny *a2
)[protected, inline]

Parameters

TInt aFunction
TAny * a1
TAny * a2

Open(RMessagePtr2, TInt, TOwnerType)

IMPORT_C TIntOpen(RMessagePtr2aMessage,
TIntaParam,
TOwnerTypeaType = EOwnerProcess
)

Parameters

RMessagePtr2 aMessage
TInt aParam
TOwnerType aType = EOwnerProcess

Open(TInt, TOwnerType)

IMPORT_C TIntOpen(TIntaArgumentIndex,
TOwnerTypeaType = EOwnerProcess
)

Parameters

TInt aArgumentIndex
TOwnerType aType = EOwnerProcess

Member Data Documentation

TInt iPadding1

TInt iPadding1[private]

TInt iPadding2

TInt iPadding2[private]