CPort Class Reference

#include <cs_port.h>

Link against: c32.lib

class CPort : public CObject

Inherits from

Public Member Type Definitions
typedef TCommAccess TAccess
Public Member Functions
CPort()
virtual ~CPort()
TBool AreAnyPending()
pure virtual voidBreak(TInt)
pure virtual voidBreakCancel()
IMPORT_C voidBreakCompleted(TInt)
IMPORT_C voidBreakNotifyCompleted(TInt)
virtual IMPORT_C voidClose()
voidCommBreak(const RMessage2 &, CCommSession *)
voidCommBreakCancel(TInt, CCommSession *)
voidCommCancel(TInt, CCommSession *)
voidCommCaps(const RMessage2 &, CCommSession &)
voidCommConfig(const RMessage2 &, CCommSession &)
voidCommDebugState(const RMessage2 &, CCommSession &)
voidCommGetFlowControlStatus(const RMessage2 &, CCommSession *)
voidCommGetRole(const RMessage2 &, CCommSession *)
voidCommGetServerConfig(const RMessage2 &, CCommSession &)
voidCommNotifyBreak(const RMessage2 &, CCommSession *)
voidCommNotifyBreakCancel(TInt, CCommSession *)
voidCommNotifyConfigChange(const RMessage2 &, CCommSession *)
voidCommNotifyConfigChangeCancel(TInt, CCommSession *)
voidCommNotifyDataAvailable(const RMessage2 &, CCommSession *)
voidCommNotifyDataAvailableCancel(TInt, CCommSession *)
voidCommNotifyFlowControlChange(const RMessage2 &, CCommSession *)
voidCommNotifyFlowControlChangeCancel(TInt, CCommSession *)
voidCommNotifyOutputEmpty(const RMessage2 &, CCommSession *)
voidCommNotifyOutputEmptyCancel(TInt, CCommSession *)
voidCommNotifySignalChange(const RMessage2 &, CCommSession *)
voidCommNotifySignalChangeCancel(TInt, CCommSession *)
voidCommQueryReceiveBuffer(const RMessage2 &, CCommSession &)
voidCommRead(const RMessage2 &, CCommSession *)
voidCommReadCancel(TInt, CCommSession *)
voidCommReceiveBufferLength(const RMessage2 &, CCommSession &)
voidCommResetBuffers(const RMessage2 &, CCommSession &)
voidCommSetAccess(const RMessage2 &, CCommSession &)
voidCommSetAccessCancel(TInt, CCommSession *)
voidCommSetConfig(const RMessage2 &, CCommSession &)
voidCommSetReceiveBufferLength(const RMessage2 &, CCommSession &)
voidCommSetServerConfig(const RMessage2 &, CCommSession &)
voidCommSetSignalsToMark(const RMessage2 &, CCommSession &)
voidCommSetSignalsToSpace(const RMessage2 &, CCommSession &)
voidCommSignals(const RMessage2 &, CCommSession &)
voidCommWrite(const RMessage2 &, CCommSession *)
voidCommWriteCancel(TInt, CCommSession *)
IMPORT_C voidConfigChangeCompleted(const TDesC8 &, TInt)
pure virtual voidDestruct()
IMPORT_C voidFlowControlChangeCompleted(const TFlowControl &, TInt)
virtual voidFreeMemory()
voidFreeSession(CCommSession *)
pure virtual TInt GetCaps(TDes8 &)
pure virtual TInt GetConfig(TDes8 &)
pure virtual TInt GetFlowControlStatus(TFlowControl &)
pure virtual TInt GetReceiveBufferLength(TInt &)
pure virtual TInt GetRole(TCommRole &)
pure virtual TInt GetServerConfig(TDes8 &)
pure virtual TInt GetSignals(TUint &)
IMPORT_C TIntIPCRead(const TAny *, TDes8 &, TInt)
IMPORT_C TIntIPCWrite(const TAny *, const TDesC8 &, TInt)
voidInitL(TDesC8 &)
TBool IsBlockedSetAccessWaiting(CCommSession &)
pure virtual voidNotifyBreak()
pure virtual voidNotifyBreakCancel()
pure virtual voidNotifyConfigChange()
pure virtual voidNotifyConfigChangeCancel()
pure virtual voidNotifyDataAvailable()
pure virtual voidNotifyDataAvailableCancel()
IMPORT_C voidNotifyDataAvailableCompleted(TInt)
pure virtual voidNotifyFlowControlChange()
pure virtual voidNotifyFlowControlChangeCancel()
pure virtual voidNotifyOutputEmpty()
pure virtual voidNotifyOutputEmptyCancel()
IMPORT_C voidNotifyOutputEmptyCompleted(TInt)
pure virtual voidNotifySignalChange(TUint)
pure virtual voidNotifySignalChangeCancel()
pure virtual TInt QueryReceiveBuffer(TInt &)
pure virtual voidReadCancel()
IMPORT_C voidReadCompleted(TInt)
TInt ReadTimerExpiredHandler(TAny *)
pure virtual voidResetBuffers(TUint)
TBool SessionHasBeenPreempted(CCommSession *)
TBool SessionIsAwaitingOpen(CCommSession *)
pure virtual TInt SetConfig(const TDesC8 &)
pure virtual TInt SetReceiveBufferLength(TInt)
pure virtual TInt SetRole(TCommRole)
pure virtual TInt SetServerConfig(const TDesC8 &)
pure virtual TInt SetSignalsToMark(TUint)
pure virtual TInt SetSignalsToSpace(TUint)
IMPORT_C voidSignalChangeCompleted(const TUint &, TInt)
pure virtual voidStartRead(const TAny *, TInt)
pure virtual voidStartWrite(const TAny *, TInt)
TBool TakeOwnershipForBreak(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForBreaking(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForConfig(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForFlowControl(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForNotifyDataAvailable(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForNotifyOutputEmpty(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForReading(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForSignals(const RMessage2 &, CCommSession *)
TBool TakeOwnershipForWriting(const RMessage2 &, CCommSession *)
pure virtual voidWriteCancel()
IMPORT_C voidWriteCompleted(TInt)
TInt WriteTimerExpiredHandler(TAny *)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
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()
CObject::AccessCount()const
CObject::CObject()
CObject::Dec()
CObject::Extension_(TUint,TAny *&,TAny *)
CObject::FullName()const
CObject::Inc()
CObject::Name()const
CObject::Open()
CObject::Owner()const
CObject::SetName(const TDesC *)
CObject::SetNameL(const TDesC *)
CObject::SetOwner(CObject *)
CObject::UniqueID()const
CObject::~CObject()

Detailed Description

Base class for implementations of serial protocol module ports. Its functions are called by the comms server in response to client calls to RComm.

The class implements CObject to obtain reference counting behaviour. The reference count is incremented when a port is first created, and, for ports in shared mode, on every later opening.

CPort is an abstract class which defines many pure virtual functions which derived classes must implement. Most of these pure virtual functions correspond to the client interface of the RComm class.

Created when the first client does an Open request passing its name. Destroyed only when it deletes itself (following a call to Destruct).

Member Type Definition Documentation

Typedef TAccess

typedef TCommAccess TAccess

Constructor & Destructor Documentation

CPort ( )

IMPORT_CCPort()

Default constructor. Derived classes should implement a NewL() function to perform their two-phase construction.

See also: TSerialNewL

~CPort ( )

IMPORT_C~CPort()[virtual]

Destructor.

Closes the owner (which is our CSerial) and removes any timers.

Derived classes can implement the destructor but must only call synchronous functions within it. Any cleanup requiring asynchronous operations must be done in Destruct().

Member Function Documentation

AreAnyPending ( )

TBool AreAnyPending()

Return true if there is an outstanding Read/Write/Break on the CSY.

Break ( TInt )

voidBreak(TIntaTime)[pure virtual]

Specifies the protocol for setting a break condition at the port. It is called by the comms server in response to a RComm::Break() request from the client.

When the break is complete, the function should call BreakCompleted().

Parameters
aTimeTime period to break for in microseconds

BreakCancel ( )

voidBreakCancel()[pure virtual]

Specifies the protocol for cancelling a break request. It is called by the comms server in response to a RComm::BreakCancel() request from the client.

The implementation should abort any processing which was taking place as a result of the break request. Do not call BreakCompleted().

BreakCompleted ( TInt )

IMPORT_C voidBreakCompleted(TIntanError)

Tells the comms server that a break request initiated through Break() is complete.

The comms server will then notify the client that its break request is complete.

Called by C32 server or CSY.

Parameters
anErrorReturn code to be passed back to the client through its TRequestStatus argument.

BreakNotifyCompleted ( TInt )

IMPORT_C voidBreakNotifyCompleted(TIntanError)

Tells the comms server that a request initiated through NotifyBreak() is complete.

The comms server will then notify the client that its request is complete.

Called by the CSY module.

Parameters
anErrorError code

Close ( )

IMPORT_C voidClose()[virtual]

Reimplemented from CObject::Close()

Closes the port.

The base class implements CObject::Close() to handle reference counting on the port. It decrements the reference count, and calls Destruct() if the count is 0.

CommBreak ( const RMessage2 &, CCommSession * )

voidCommBreak(const RMessage2 &aMessage,
CCommSession *aClient
)

Perform a break making sure of the port's owner

Parameters
aMessagemessage from the client
aClienthandle to the client session.

CommBreakCancel ( TInt, CCommSession * )

voidCommBreakCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding break

Parameters
aHandlehandle to the client
aClienthandle to the client session.

CommCancel ( TInt, CCommSession * )

voidCommCancel(TIntaHandle,
CCommSession *aClient
)

Cancel any outstanding requests

Parameters
aHandlehandle to the client
aClienthandle to the client session.

CommCaps ( const RMessage2 &, CCommSession & )

voidCommCaps(const RMessage2 &aMessage,
CCommSession &aSession
)

Read capabilities

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommConfig ( const RMessage2 &, CCommSession & )

voidCommConfig(const RMessage2 &aMessage,
CCommSession &aSession
)const

Get config

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommDebugState ( const RMessage2 &, CCommSession & )

voidCommDebugState(const RMessage2 &aMessage,
CCommSession &aSession
)

CommGetFlowControlStatus ( const RMessage2 &, CCommSession * )

voidCommGetFlowControlStatus(const RMessage2 &aMessage,
CCommSession *aClient
)

Get flow control state ON/OFF from CSY module

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommGetRole ( const RMessage2 &, CCommSession * )

voidCommGetRole(const RMessage2 &aMessage,
CCommSession *aClient
)

Get role DCE/DTE from CSY module

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommGetServerConfig ( const RMessage2 &, CCommSession & )

voidCommGetServerConfig(const RMessage2 &aMessage,
CCommSession &aSession
)

Get server config

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommNotifyBreak ( const RMessage2 &, CCommSession * )

voidCommNotifyBreak(const RMessage2 &aMessage,
CCommSession *aClient
)

Set break signal notifying on

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommNotifyBreakCancel ( TInt, CCommSession * )

voidCommNotifyBreakCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding break notification

Parameters
aHandleHandle to the session
aClientpointer to the Comm session

CommNotifyConfigChange ( const RMessage2 &, CCommSession * )

voidCommNotifyConfigChange(const RMessage2 &aMessage,
CCommSession *aClient
)

Set configuration change (data format, speed, ...) notifying on

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommNotifyConfigChangeCancel ( TInt, CCommSession * )

voidCommNotifyConfigChangeCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding configuration change notification

Parameters
aHandleHandle to the session
aClientpointer to the Comm session

CommNotifyDataAvailable ( const RMessage2 &, CCommSession * )

voidCommNotifyDataAvailable(const RMessage2 &aMessage,
CCommSession *aClient
)

Set input buffer data notifying on

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommNotifyDataAvailableCancel ( TInt, CCommSession * )

voidCommNotifyDataAvailableCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding input buffer data notification

Parameters
aHandleHandle to the session
aClientpointer to the Comm session

CommNotifyFlowControlChange ( const RMessage2 &, CCommSession * )

voidCommNotifyFlowControlChange(const RMessage2 &aMessage,
CCommSession *aClient
)

Set flow control notifying on

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommNotifyFlowControlChangeCancel ( TInt, CCommSession * )

voidCommNotifyFlowControlChangeCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding flow control notification

Parameters
aHandleHandle to the session
aClientpointer to the Comm session

CommNotifyOutputEmpty ( const RMessage2 &, CCommSession * )

voidCommNotifyOutputEmpty(const RMessage2 &aMessage,
CCommSession *aClient
)

Set output buffer empty notifying on

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommNotifyOutputEmptyCancel ( TInt, CCommSession * )

voidCommNotifyOutputEmptyCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding output buffer empty notification

Parameters
aHandleHandle to the session
aClientpointer to the Comm session

CommNotifySignalChange ( const RMessage2 &, CCommSession * )

voidCommNotifySignalChange(const RMessage2 &aMessage,
CCommSession *aClient
)

Set DCE/DTE signal notifying on

Parameters
aMessagehandle to the IPC message from the client
aClientpointer to the Comm session

CommNotifySignalChangeCancel ( TInt, CCommSession * )

voidCommNotifySignalChangeCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding signal notification

Parameters
aHandleHandle to the session
aClientpointer to the Comm session

CommQueryReceiveBuffer ( const RMessage2 &, CCommSession & )

voidCommQueryReceiveBuffer(const RMessage2 &aMessage,
CCommSession &aSession
)const

Set the receive buffer length

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommRead ( const RMessage2 &, CCommSession * )

voidCommRead(const RMessage2 &aMessage,
CCommSession *aClient
)

Perform a read making sure of the port's owner

Parameters
aMessagemessage from the client
aClienthandle to the client session.

CommReadCancel ( TInt, CCommSession * )

voidCommReadCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding read

Parameters
aHandlehandle to the client
aClienthandle to the client session.

CommReceiveBufferLength ( const RMessage2 &, CCommSession & )

voidCommReceiveBufferLength(const RMessage2 &aMessage,
CCommSession &aSession
)const

read the receive buffer length

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommResetBuffers ( const RMessage2 &, CCommSession & )

voidCommResetBuffers(const RMessage2 &aMessage,
CCommSession &aSession
)

Set the receive buffer length

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommSetAccess ( const RMessage2 &, CCommSession & )

voidCommSetAccess(const RMessage2 &aMessage,
CCommSession &aSession
)

set the access mode

Parameters
aMessagemessage from client with the new access mode
aSessionhandle to the session.

CommSetAccessCancel ( TInt, CCommSession * )

voidCommSetAccessCancel(TIntaHandle,
CCommSession *aClient
)

Cancels an outstanding set access request.

Parameters
aClientpointer to the CCommSession client.

CommSetConfig ( const RMessage2 &, CCommSession & )

voidCommSetConfig(const RMessage2 &aMessage,
CCommSession &aSession
)

Set config

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommSetReceiveBufferLength ( const RMessage2 &, CCommSession & )

voidCommSetReceiveBufferLength(const RMessage2 &aMessage,
CCommSession &aSession
)

Set the receive buffer length

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommSetServerConfig ( const RMessage2 &, CCommSession & )

voidCommSetServerConfig(const RMessage2 &aMessage,
CCommSession &aSession
)

Set server config

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommSetSignalsToMark ( const RMessage2 &, CCommSession & )

voidCommSetSignalsToMark(const RMessage2 &aMessage,
CCommSession &aSession
)

Set signal lines

Parameters
aMessagemessage from the client.

CommSetSignalsToSpace ( const RMessage2 &, CCommSession & )

voidCommSetSignalsToSpace(const RMessage2 &aMessage,
CCommSession &aSession
)

Clear signal lines

Parameters
aMessagemessage from the client.

CommSignals ( const RMessage2 &, CCommSession & )

voidCommSignals(const RMessage2 &aMessage,
CCommSession &aSession
)

Read signals

Parameters
aMessagemessage from the client
aSessionhandle to the client session.

CommWrite ( const RMessage2 &, CCommSession * )

voidCommWrite(const RMessage2 &aMessage,
CCommSession *aClient
)

Perform a write making sure of the port's owner

Parameters
aMessagemessage from the client
aClienthandle to the client session.

CommWriteCancel ( TInt, CCommSession * )

voidCommWriteCancel(TIntaHandle,
CCommSession *aClient
)

Cancel outstanding write

Parameters
aHandlehandle to the client
aClienthandle to the client session.

ConfigChangeCompleted ( const TDesC8 &, TInt )

IMPORT_C voidConfigChangeCompleted(const TDesC8 &aNewConfig,
TIntanError
)

Tells the comms server that a request initiated through NotifyConfigChange() is complete.

The comms server will then notify the client that its request is complete.

Called by the CSY module.

Parameters
aNewConfigConfiguration value to pass to client
anErrorError code

Destruct ( )

voidDestruct()[pure virtual]

Specifies the protocol for port destruction. It is called by the comms server when the last client-side reference to a CPort object has been closed and the CPort must be deleted. The comms server will not delete a CPort other than by calling Destruct().

The implementation should perform any asynchronous shutdown operations on its own resources and, when these operations have completed, should delete this.

FlowControlChangeCompleted ( const TFlowControl &, TInt )

IMPORT_C voidFlowControlChangeCompleted(const TFlowControl &aFlowControl,
TIntanError
)

Tells the comms server that a request initiated through NotifyFlowControlChange() is complete.

The comms server will then notify the client that its request is complete.

Called by the CSY module.

Parameters
aFlowControlFlow control to pass to client
anErrorError code

FreeMemory ( )

voidFreeMemory()[virtual]

Specifies a protocol by which the comms server can request the protocol to release memory. Typically, an implementation may be able to do this by reducing internal buffers.

The default behaviour is to do nothing.

FreeSession ( CCommSession * )

voidFreeSession(CCommSession *aSession)

Perform CPort based housekeeping before closing a session

Parameters
aSessionpointer to the session to free.

GetCaps ( TDes8 & )

TInt GetCaps(TDes8 &aPackage)[pure virtual]

Specifies a protocol for getting the port capabilities. It is called by the comms server in response to a RComm::Caps() request from the client.

Parameters
aPackageA TCommCaps package buffer that, on return, holds the port capabilities
Return Value
A system error code

GetConfig ( TDes8 & )

TInt GetConfig(TDes8 &aPackage)const [pure virtual]

Specifies a protocol for getting the current configuration of the serial port. It is called by the comms server in response to a RComm::GetConfig() request from the client.

Parameters
aPackageA packaged TCommConfig buffer, set on return to the current configuration of the serial port
Return Value
A system wide error code

GetFlowControlStatus ( TFlowControl & )

TInt GetFlowControlStatus(TFlowControl &aFlowControl)[pure virtual]

Gets flow control status. It is called by the comms server in response to a RComm::SetMode() request from the client.

Parameters
aFlowControlFlow control status to return to the client
Return Value
A system-wide error code

GetReceiveBufferLength ( TInt & )

TInt GetReceiveBufferLength(TInt &aLength)const [pure virtual]

Specifies a protocol for requesting the size of the serial port buffers. It is called by the comms server in response to a RComm::ReceiveBufferLength() request from the client.

Parameters
aLengthThe current size of the serial port buffers in bytes
Return Value
A system error code

GetRole ( TCommRole & )

TInt GetRole(TCommRole &aRole)[pure virtual]

Gets DCE/DTE role. It is called by the comms server in response to a RComm::GetRole() request from the client.

Parameters
aRoleOn return, DCE/DTE role to return to the client
Return Value
A system-wide error code

GetServerConfig ( TDes8 & )

TInt GetServerConfig(TDes8 &aPackage)[pure virtual]

Specifies a protocol for getting the buffer mode. It is called by the comms server in response to a RComm::Mode() request from the client.

Parameters
aPackageA TCommServerConfig package buffer that, on return, holds the current buffer mode settings
Return Value
A system error code

GetSignals ( TUint & )

TInt GetSignals(TUint &aSignals)[pure virtual]

Specifies a protocol for getting the status of the serial port control lines. It is called by the comms server in response to a RComm::GetSignals() request from the client.

Parameters
aSignalsAn integer with the bits set to reflect the status of the handshaking lines.
Return Value
A system error code

IPCRead ( const TAny *, TDes8 &, TInt )

IMPORT_C TIntIPCRead(const TAny *aPtr,
TDes8 &aDes,
TIntaOffset = 0
)const

Reads data from the client's (the user of the port's) address space.

The client address space pointer is obtained from the aClientBuffer argument to StartRead().

Note:

This function is normally called by the CSY

Note:

Used as part of RComm::Write

See also: RThread::ReadL() for more information on reading data in other address spaces.

Parameters
aPtrNot Used. The client data is now obtained from iBlockedWrite.
aDesA descriptor (8 bit variant) into which the result of the client address space read operation will be stored
aOffsetThe read offset from the start of the client's descriptor data.
Return Value
TInt KErrNone: success KErrNotReady: there is no read or write request outstanding KErrBadDescriptor: the client's descriptor is not valid.

IPCWrite ( const TAny *, const TDesC8 &, TInt )

IMPORT_C TIntIPCWrite(const TAny *aPtr,
const TDesC8 &aDes,
TIntaOffset = 0
)const

Writes into the client's (the user of the port's) address space.

The client address space pointer is obtained from the aClientBuffer argument to StartWrite().

Note:

This function is normally called by the CSY

Note:

Used as part of RComm::Read

See also: RThread::WriteL() for more information on writing data to other address spaces.

Parameters
aPtrClient address space pointer
aDesA descriptor (8 bit variant) into which the result of the client address space read will be stored
aOffsetThe offset from aPtr at which to start reading
Return Value
TInt KErrNone: success KErrNotReady: there is no read or write request outstanding KErrBadDescriptor: the client's descriptor is not valid.

InitL ( TDesC8 & )

voidInitL(TDesC8 &aName)

IsBlockedSetAccessWaiting ( CCommSession & )

TBool IsBlockedSetAccessWaiting(CCommSession &aClient)

Checks if a CommSetAccess() request is waiting for the port.

Parameters
aClientThe CCommSession client to check against.
Return Value
True if a request is pending, false otherwise.

NotifyBreak ( )

voidNotifyBreak()[pure virtual]

Specifies the protocol for setting a "break" notification. It is called by the comms server in response to a RComm::NotifyBreak() request from the client.

NotifyBreakCancel ( )

voidNotifyBreakCancel()[pure virtual]

Specifies the protocol for cancelling a "break" notification. It is called by the comms server in response to a RComm::NotifyBreakCancel() request from the client.

NotifyConfigChange ( )

voidNotifyConfigChange()[pure virtual]

Specifies the protocol for setting a "configuration change" notification. It is called by the comms server in response to a RComm::NotifyConfigChange() request from the client.

NotifyConfigChangeCancel ( )

voidNotifyConfigChangeCancel()[pure virtual]

Specifies the protocol for cancelling a "configuration change" notification. It is called by the comms server in response to a RComm::NotifyConfigChangeCancel() request from the client.

NotifyDataAvailable ( )

voidNotifyDataAvailable()[pure virtual]

Specifies the protocol for setting a "data available" notification. It is called

by the comms server in response to a RComm::NotifyDataAvailable() request from the client.

NotifyDataAvailableCancel ( )

voidNotifyDataAvailableCancel()[pure virtual]

Specifies the protocol for cancelling a "data available" notification. It is called by the comms server in response to a RComm::NotifyDataAvailableCancel() request from the client.

NotifyDataAvailableCompleted ( TInt )

IMPORT_C voidNotifyDataAvailableCompleted(TIntanError)

Tells the comms server that a request initiated through NotifyDataAvailable() is complete.

The comms server will then notify the client that its request is complete.

Called by the CSY module.

Parameters
anErrorError code

NotifyFlowControlChange ( )

voidNotifyFlowControlChange()[pure virtual]

Specifies the protocol for setting a "flow control change" notification. It is called by the comms server in response to a RComm::NotifyFlowControlChange() request from the client.

NotifyFlowControlChangeCancel ( )

voidNotifyFlowControlChangeCancel()[pure virtual]

Specifies the protocol for cancelling a "flow control change" notification. It is called by the comms server in response to a RComm::NotifyFlowControlChangeCancel() request from the client.

NotifyOutputEmpty ( )

voidNotifyOutputEmpty()[pure virtual]

Specifies the protocol for setting a transmit buffer empty notification. It is called by the comms server in response to a RComm::NotifyOutputEmpty() request from the client.

NotifyOutputEmptyCancel ( )

voidNotifyOutputEmptyCancel()[pure virtual]

Specifies the protocol for cancelling a transmit buffer empty notification. It is called by the comms server in response to a RComm::NotifyOutputEmptyCancel() request from the client.

NotifyOutputEmptyCompleted ( TInt )

IMPORT_C voidNotifyOutputEmptyCompleted(TIntanError)

Tells the comms server that a request initiated through NotifyOutputEmpty() is complete.

The comms server will then notify the client that its request is complete.

Called by the CSY module.

Parameters
anErrorError code

NotifySignalChange ( TUint )

voidNotifySignalChange(TUintaSignalMask)[pure virtual]

Specifies the protocol for setting a "signal change" notification. It is called by the comms server in response to a RComm::NotifySignalChange() request from the client.

Parameters
aSignalMaskSignal mask passed by client

NotifySignalChangeCancel ( )

voidNotifySignalChangeCancel()[pure virtual]

Specifies the protocol for cancelling a "signal change" notification. It is called by the comms server in response to a RComm::NotifySignalChangeCancel() request from the client.

QueryReceiveBuffer ( TInt & )

TInt QueryReceiveBuffer(TInt &aLength)const [pure virtual]

Specifies a protocol for requesting the number of bytes that are currently waiting in the port's receive buffer. It is called by the comms server in response to a RComm::QueryReceiveBuffer() request from the client.

Parameters
aLengthOn return, the number of bytes currently waiting to be read from the receive buffer.
Return Value
A system wide error code.

ReadCancel ( )

voidReadCancel()[pure virtual]

Specifies the protocol for cancelling reading from the port. It is called by the comms server in response to a RComm::ReadCancel() request from the client or when the iReadTimer timer expires.

The implementation should abort any processing which was taking place as a result of the read request. Do not call ReadCompleted().

ReadCompleted ( TInt )

IMPORT_C voidReadCompleted(TIntanError)

Tells the comms server that a read request initiated through StartRead() is complete.

The comms server will then notify the client that its read request is complete.

Called by C32 server or CSY.

Parameters
anErrorReturn code to be passed back to the client through its TRequestStatus argument.

ReadTimerExpiredHandler ( TAny * )

TInt ReadTimerExpiredHandler(TAny *aPtr)[static]

This static function is called when the read timer expires. installed by CPort::CommRead as TCallBack

Parameters
aPtrpointer to the CPort with the timedout read
Return Value
KErrNone always.

ResetBuffers ( TUint )

voidResetBuffers(TUintaFlags)[pure virtual]

Specifies a protocol for resetting the receive and/or transmit buffers to zero length. It is called by the comms server in response to a RComm::ResetBuffers() request from the client.

Parameters
aFlagsBitmask of the following flags: KCommResetRx to reset the receive buffer; KCommResetTx to reset the transmit buffer

SessionHasBeenPreempted ( CCommSession * )

TBool SessionHasBeenPreempted(CCommSession *aSession)

returns true if session has been pre-empted

Parameters
aSessionsession to be questioned
Return Value
TBool pre-empted status of this session. ETrue if session has been pre-empted, EFalse otherwise.

SessionIsAwaitingOpen ( CCommSession * )

TBool SessionIsAwaitingOpen(CCommSession *aSession)

returns true if session is waiting for open

Parameters
aSessionsession to be questioned
Return Value
TBool ETrue if session is awaiting open, EFalse otherwise.

SetConfig ( const TDesC8 & )

TInt SetConfig(const TDesC8 &aPackage)[pure virtual]

Specifies a protocol for setting the configuration of the port. It is called by the comms server in response to a RComm::SetConfig() request from the client.

Parameters
aPackageA packaged TCommConfig buffer holding the new configuration values
Return Value
A system error code

SetReceiveBufferLength ( TInt )

TInt SetReceiveBufferLength(TIntaLength)[pure virtual]

Specifies a protocol for setting the size of the serial port buffers. It is called by the comms server in response to a RComm::SetReceiveBufferLength() request from the client.

Parameters
aLengthRequested size of the serial port buffers in bytes
Return Value
A system error code

SetRole ( TCommRole )

TInt SetRole(TCommRoleaRole)[pure virtual]

Sets DCE/DTE role. It is called by the comms server in response to a RComm::Open() request from the client.

Parameters
aRoleDCE/DTE role
Return Value
A system-wide error code

SetServerConfig ( const TDesC8 & )

TInt SetServerConfig(const TDesC8 &aPackage)[pure virtual]

Specifies a protocol for setting the buffer mode. It is called by the comms server in response to a RComm::SetMode() request from the client.

Parameters
aPackageA TCommServerConfig package buffer holding the mode settings
Return Value
A system-wide error code

SetSignalsToMark ( TUint )

TInt SetSignalsToMark(TUintaSignals)[pure virtual]

Specifies a protocol for setting serial port control lines. It is called by the comms server in response to a RComm::SetSignals() request from the client.

Parameters
aSignalsA bitmask of the handshaking lines to set
Return Value
A system error code

SetSignalsToSpace ( TUint )

TInt SetSignalsToSpace(TUintaSignals)[pure virtual]

Specifies a protocol for clearing serial port control lines. It is called by the comms server in response to a RComm::SetSignals() request from the client.

Parameters
aSignalsA bitmask of the handshaking lines to clear
Return Value
A system error code

SignalChangeCompleted ( const TUint &, TInt )

IMPORT_C voidSignalChangeCompleted(const TUint &aSignals,
TIntanError
)

Tells the comms server that a request initiated through NotifySignalChange() is complete.

The comms server will then notify the client that its request is complete.

Called by the CSY module.

Parameters
aSignalsThe new signals value to pass to the client.
anErrorAn error code.

StartRead ( const TAny *, TInt )

voidStartRead(const TAny *aClientBuffer,
TIntaLength
)[pure virtual]

Specifies the protocol for reading from the port. It is called by the comms server in response to a RComm::Read() or RComm::ReadOneOrMore() request from the client.

A negative value for aLength is used to flag that the read request was from RComm::ReadOneOrMore() rather than from RComm::Read(). The maximum length of data to be read is the absolute value of aLength.

The implementation should use IPCWrite() to write the data to the client's buffer. When all the data has been read, the function should call ReadCompleted().

Parameters
aClientBufferPointer into client address space to the descriptor containing the client's buffer
aLengthThe amount of data to be read

StartWrite ( const TAny *, TInt )

voidStartWrite(const TAny *aClientBuffer,
TIntaLength
)[pure virtual]

Specifies the protocol for writing to the port. It is called by the comms server in response to a RComm::Write() request from the client.

The implementation should use IPCRead() to get the data to write from the client's buffer. When all the data has been written, the function should call WriteCompleted().

Parameters
aClientBufferPointer into client address space to the descriptor containing the client's buffer
aLengthThe amount of data to be written

TakeOwnershipForBreak ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForBreak(const RMessage2 &aMessage,
CCommSession *aClient
)

We check that break notifying is not called twice at the same time

Parameters
aClientpointer to the Comm session
Return Value
ETrue if not owner, EFalse if owner

TakeOwnershipForBreaking ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForBreaking(const RMessage2 &aMessage,
CCommSession *aClient
)

Check if a Break request is valid and take ownership of port

Parameters
aClienthandle to the client session
Return Value
TBool ETrue if ownership granted, EFalse otherwise.

TakeOwnershipForConfig ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForConfig(const RMessage2 &aMessage,
CCommSession *aClient
)

We check that config change notifying is not called twice at the same time

Parameters
aClientpointer to the Comm session
Return Value
ETrue if not owner, EFalse if owner

TakeOwnershipForFlowControl ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForFlowControl(const RMessage2 &aMessage,
CCommSession *aClient
)

We check that flowcontrol notifying is not called twice at the same time

Parameters
aClientpointer to the Comm session
Return Value
ETrue if not owner, EFalse if owner

TakeOwnershipForNotifyDataAvailable ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForNotifyDataAvailable(const RMessage2 &aMessage,
CCommSession *aClient
)

We check that input buffer data notifying is not called twice at the same time

Parameters
aClientpointer to the Comm session
Return Value
ETrue if not owner, EFalse if owner

TakeOwnershipForNotifyOutputEmpty ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForNotifyOutputEmpty(const RMessage2 &aMessage,
CCommSession *aClient
)

We check that output buffer empty notifying is not called twice at the same time

Parameters
aClientpointer to the Comm session
Return Value
ETrue if not owner, EFalse if owner

TakeOwnershipForReading ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForReading(const RMessage2 &aMessage,
CCommSession *aClient
)

Check if a Read request is valid and take ownership of port

Parameters
aClienthandle to the client session
Return Value
TBool ETrue if ownership granted, EFalse otherwise.

TakeOwnershipForSignals ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForSignals(const RMessage2 &aMessage,
CCommSession *aClient
)

We check that signal notifying is not called twice at the same time

Parameters
aClientpointer to the Comm session
Return Value
ETrue if not owner, EFalse if owner

TakeOwnershipForWriting ( const RMessage2 &, CCommSession * )

TBool TakeOwnershipForWriting(const RMessage2 &aMessage,
CCommSession *aClient
)

Check if a Write request is valid and take ownership of port

Parameters
aClienthandle to the client session
Return Value
TBool ETrue if ownership granted, EFalse otherwise.

WriteCancel ( )

voidWriteCancel()[pure virtual]

Specifies the protocol for cancelling writing to the port. It is called by the comms server in response to a RComm::WriteCancel() request from the client.

The implementation should abort any processing which was taking place as a result of the write request. Do not call WriteCompleted().

WriteCompleted ( TInt )

IMPORT_C voidWriteCompleted(TIntanError)

Tells the comms server that a write request initiated through StartWrite() is complete.

The comms server will then notify the client that its write request is complete.

Called by C32 server or CSY.

Parameters
anErrorReturn code to be passed back to the client through its TRequestStatus argument.

WriteTimerExpiredHandler ( TAny * )

TInt WriteTimerExpiredHandler(TAny *aPtr)[static]

This static function is called when the write timer expires. installed by CPort::CommWrite as TCallBack

Parameters
aPtrpointer to the CPort with the timedout write
Return Value
KErrNone always.