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 TInt Open ( RMessagePtr2 , TInt , TOwnerType )
IMPORT_C TInt Open ( TInt , TOwnerType )
Protected Member Functions
IMPORT_C void DoCancel ( TUint )
IMPORT_C TInt DoControl ( TInt )
IMPORT_C TInt DoControl ( TInt , TAny *)
IMPORT_C TInt DoControl ( TInt , TAny *, TAny *)
TInt DoCreate (const TDesC &, const TVersion &, TInt , const TDesC *, const TDesC8 *, TOwnerType , TBool )
IMPORT_C void DoRequest ( TInt , TRequestStatus &)
IMPORT_C void DoRequest ( TInt , TRequestStatus &, TAny *)
IMPORT_C void DoRequest ( TInt , TRequestStatus &, TAny *, TAny *)
TInt DoSvControl ( TInt )
TInt DoSvControl ( TInt , TAny *)
TInt DoSvControl ( TInt , TAny *, TAny *)
Private Member Functions
IMPORT_C TInt DoCreate (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 void DoCancel ( TUint aReqMask ) [protected]

Cancels one or more outstanding asynchronous requests.

All outstanding requests complete with KErrCancel.

Parameters

TUint aReqMask A set of bits identifying the requests to be cancelled. Each bit can be used to identify a separate outstanding request. It is up to the driver to define how the bits map to those outstanding requests.

DoControl(TInt)

IMPORT_C TInt DoControl ( TInt aFunction ) [protected]

Makes a synchronous request to the device driver, taking no parameters.

This function does not return until the request has completed, successfully or otherwise.

Parameters

TInt aFunction A number identifying the request.

DoControl(TInt, TAny *)

IMPORT_C TInt DoControl ( TInt aFunction,
TAny * a1
) [protected]

Makes a synchronous request to the device driver, taking one parameter.

This function does not return until the request has completed, successfully or otherwise.

Parameters

TInt aFunction A number identifying the request.
TAny * a1 A 32-bit value passed to the kernel-side. Its meaning depends on the device driver requirements.

DoControl(TInt, TAny *, TAny *)

IMPORT_C TInt DoControl ( TInt aFunction,
TAny * a1,
TAny * a2
) [protected]

Makes a synchronous request to the device driver, taking two parameters.

This function does not return until the request has completed, successfully or otherwise.

Parameters

TInt aFunction A number identifying the request.
TAny * a1 A 32-bit value passed to the kernel-side. Its meaning depends on the device driver requirements.
TAny * a2 A 32-bit value passed to the kernel-side. Its meaning depends on the device driver requirements.

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

TInt DoCreate ( const TDesC & aDevice,
const TVersion & aVer,
TInt aUnit,
const TDesC * aDriver,
const TDesC8 * anInfo,
TOwnerType aType = EOwnerProcess,
TBool aProtected = EFalse
) [protected, inline]

Creates the logical channel.

Parameters

const TDesC & aDevice The 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 & aVer The 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 aUnit A 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 * aDriver A 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 * anInfo A 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 = EOwnerProcess An enumeration whose enumerators define the ownership of this handle. If not explicitly specified, EOwnerProcess is taken as default.
TBool aProtected = EFalse If 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 TInt DoCreate ( const TDesC & aDevice,
const TVersion & aVer,
TInt aUnit,
const TDesC * aDriver,
const TDesC8 * aInfo,
TInt aType
) [private]

Parameters

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

DoRequest(TInt, TRequestStatus &)

IMPORT_C void DoRequest ( TInt aReqNo,
TRequestStatus & aStatus
) [protected]

Queues an asynchronous request for the device driver, taking no parameters.

The request is handled on the kernel-side by the logical channel's DLogicalChannelBase::Request().

Outstanding requests can be cancelled by calling DoCancel() .

Parameters

TInt aReqNo A number identifying the request to the logical channel.
TRequestStatus & aStatus The request status object for this request.

DoRequest(TInt, TRequestStatus &, TAny *)

IMPORT_C void DoRequest ( TInt aReqNo,
TRequestStatus & aStatus,
TAny * a1
) [protected]

Queues an asynchronous request for the device driver, taking one parameter.

The request is handled on the kernel-side by the logical channel's DLogicalChannelBase::Request().

Outstanding requests can be cancelled by calling DoCancel() .

Parameters

TInt aReqNo A number identifying the request to the logical channel.
TRequestStatus & aStatus The request status object for this request.
TAny * a1 A 32-bit value passed to the kernel-side. Its meaning depends on the device driver requirements.

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

IMPORT_C void DoRequest ( TInt aReqNo,
TRequestStatus & aStatus,
TAny * a1,
TAny * a2
) [protected]

Queues an asynchronous request for the device driver, taking two parameters.

The request is handled on the kernel-side by the logical channel's DLogicalChannelBase::Request().

Outstanding requests can be cancelled by calling DoCancel() .

Parameters

TInt aReqNo A number identifying the request to the logical channel.
TRequestStatus & aStatus The request status object for this request.
TAny * a1 A 32-bit value passed to the kernel-side. Its meaning depends on the device driver requirements.
TAny * a2 A 32-bit value passed to the kernel-side. Its meaning depends on the device driver requirements.

DoSvControl(TInt)

TInt DoSvControl ( TInt aFunction ) [protected, inline]

Parameters

TInt aFunction

DoSvControl(TInt, TAny *)

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

Parameters

TInt aFunction
TAny * a1

DoSvControl(TInt, TAny *, TAny *)

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

Parameters

TInt aFunction
TAny * a1
TAny * a2

Open(RMessagePtr2, TInt, TOwnerType)

IMPORT_C TInt Open ( RMessagePtr2 aMessage,
TInt aParam,
TOwnerType aType = EOwnerProcess
)

Opens a handle to a logical channel using a handle number sent by a client to a server.

This function is called by the server.

Parameters

RMessagePtr2 aMessage The message pointer.
TInt aParam An index specifying which of the four message arguments contains the handle number.
TOwnerType aType = EOwnerProcess An enumeration whose enumerators define the ownership of this logical channel handle. If not explicitly specified, EOwnerProcess is taken as default.

Open(TInt, TOwnerType)

IMPORT_C TInt Open ( TInt aArgumentIndex,
TOwnerType aType = EOwnerProcess
)

Opens a logical channel handle using a handle number passed as an environment data item to the child process during the creation of that child process.

Note that this function can only be called successfully once.

Parameters

TInt aArgumentIndex An index that identifies the slot in the process environment data that contains the handle number. This is a value relative to zero, i.e. 0 is the first item/slot. This can range from 0 to 15.
TOwnerType aType = EOwnerProcess An enumeration whose enumerators define the ownership of this logical channel handle. If not explicitly specified, EOwnerProcess is taken as default.

Member Data Documentation

TInt iPadding1

TInt iPadding1 [private]

TInt iPadding2

TInt iPadding2 [private]