CPort Class Reference

#include <cs_port.h>

Link against: c32.lib

class CPort : public CObject

Inherits from

  • CPort
    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().

    ParameterDescription
    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.

    ParameterDescription
    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.

    ParameterDescription
    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

    ParameterDescription
    aMessagemessage from the client
    aClienthandle to the client session.

    CommBreakCancel ( TInt, CCommSession * )

    voidCommBreakCancel(TIntaHandle,
    CCommSession *aClient
    )

    Cancel outstanding break

    ParameterDescription
    aHandlehandle to the client
    aClienthandle to the client session.

    CommCancel ( TInt, CCommSession * )

    voidCommCancel(TIntaHandle,
    CCommSession *aClient
    )

    Cancel any outstanding requests

    ParameterDescription
    aHandlehandle to the client
    aClienthandle to the client session.

    CommCaps ( const RMessage2 &, CCommSession & )

    voidCommCaps(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Read capabilities

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommConfig ( const RMessage2 &, CCommSession & )

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

    Get config

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommNotifyBreak ( const RMessage2 &, CCommSession * )

    voidCommNotifyBreak(const RMessage2 &aMessage,
    CCommSession *aClient
    )

    Set break signal notifying on

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

    CommNotifyBreakCancel ( TInt, CCommSession * )

    voidCommNotifyBreakCancel(TIntaHandle,
    CCommSession *aClient
    )

    Cancel outstanding break notification

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    aHandleHandle to the session
    aClientpointer to the Comm session

    CommNotifyFlowControlChange ( const RMessage2 &, CCommSession * )

    voidCommNotifyFlowControlChange(const RMessage2 &aMessage,
    CCommSession *aClient
    )

    Set flow control notifying on

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    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

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

    CommNotifySignalChangeCancel ( TInt, CCommSession * )

    voidCommNotifySignalChangeCancel(TIntaHandle,
    CCommSession *aClient
    )

    Cancel outstanding signal notification

    ParameterDescription
    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

    ParameterDescription
    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

    ParameterDescription
    aMessagemessage from the client
    aClienthandle to the client session.

    CommReadCancel ( TInt, CCommSession * )

    voidCommReadCancel(TIntaHandle,
    CCommSession *aClient
    )

    Cancel outstanding read

    ParameterDescription
    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

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommResetBuffers ( const RMessage2 &, CCommSession & )

    voidCommResetBuffers(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Set the receive buffer length

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommSetAccess ( const RMessage2 &, CCommSession & )

    voidCommSetAccess(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    set the access mode

    ParameterDescription
    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.

    ParameterDescription
    aClientpointer to the CCommSession client.

    CommSetConfig ( const RMessage2 &, CCommSession & )

    voidCommSetConfig(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Set config

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommSetReceiveBufferLength ( const RMessage2 &, CCommSession & )

    voidCommSetReceiveBufferLength(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Set the receive buffer length

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommSetServerConfig ( const RMessage2 &, CCommSession & )

    voidCommSetServerConfig(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Set server config

    ParameterDescription
    aMessagemessage from the client
    aSessionhandle to the client session.

    CommSetSignalsToMark ( const RMessage2 &, CCommSession & )

    voidCommSetSignalsToMark(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Set signal lines

    ParameterDescription
    aMessagemessage from the client.

    CommSetSignalsToSpace ( const RMessage2 &, CCommSession & )

    voidCommSetSignalsToSpace(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Clear signal lines

    ParameterDescription
    aMessagemessage from the client.

    CommSignals ( const RMessage2 &, CCommSession & )

    voidCommSignals(const RMessage2 &aMessage,
    CCommSession &aSession
    )

    Read signals

    ParameterDescription
    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

    ParameterDescription
    aMessagemessage from the client
    aClienthandle to the client session.

    CommWriteCancel ( TInt, CCommSession * )

    voidCommWriteCancel(TIntaHandle,
    CCommSession *aClient
    )

    Cancel outstanding write

    ParameterDescription
    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.

    ParameterDescription
    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.

    ParameterDescription
    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

    ParameterDescription
    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.

    ParameterDescription
    aPackageA TCommCaps package buffer that, on return, holds the port capabilities

    Returns: 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.

    ParameterDescription
    aPackageA packaged TCommConfig buffer, set on return to the current configuration of the serial port

    Returns: 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.

    ParameterDescription
    aFlowControlFlow control status to return to the client

    Returns: 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.

    ParameterDescription
    aLengthThe current size of the serial port buffers in bytes

    Returns: 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.

    ParameterDescription
    aRoleOn return, DCE/DTE role to return to the client

    Returns: 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.

    ParameterDescription
    aPackageA TCommServerConfig package buffer that, on return, holds the current buffer mode settings

    Returns: 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.

    ParameterDescription
    aSignalsAn integer with the bits set to reflect the status of the handshaking lines.

    Returns: 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.

    ParameterDescription
    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.

    Returns: 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.

    ParameterDescription
    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

    Returns: 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.

    ParameterDescription
    aClientThe CCommSession client to check against.

    Returns: 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.

    ParameterDescription
    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.

    ParameterDescription
    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.

    ParameterDescription
    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.

    ParameterDescription
    aLengthOn return, the number of bytes currently waiting to be read from the receive buffer.

    Returns: 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.

    ParameterDescription
    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

    ParameterDescription
    aPtrpointer to the CPort with the timedout read

    Returns: 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.

    ParameterDescription
    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

    ParameterDescription
    aSessionsession to be questioned

    Returns: 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

    ParameterDescription
    aSessionsession to be questioned

    Returns: 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.

    ParameterDescription
    aPackageA packaged TCommConfig buffer holding the new configuration values

    Returns: 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.

    ParameterDescription
    aLengthRequested size of the serial port buffers in bytes

    Returns: 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.

    ParameterDescription
    aRoleDCE/DTE role

    Returns: 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.

    ParameterDescription
    aPackageA TCommServerConfig package buffer holding the mode settings

    Returns: 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.

    ParameterDescription
    aSignalsA bitmask of the handshaking lines to set

    Returns: 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.

    ParameterDescription
    aSignalsA bitmask of the handshaking lines to clear

    Returns: 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.

    ParameterDescription
    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().

    ParameterDescription
    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().

    ParameterDescription
    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

    ParameterDescription
    aClientpointer to the Comm session

    Returns: 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

    ParameterDescription
    aClienthandle to the client session

    Returns: 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

    ParameterDescription
    aClientpointer to the Comm session

    Returns: 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

    ParameterDescription
    aClientpointer to the Comm session

    Returns: 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

    ParameterDescription
    aClientpointer to the Comm session

    Returns: 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

    ParameterDescription
    aClientpointer to the Comm session

    Returns: 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

    ParameterDescription
    aClienthandle to the client session

    Returns: 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

    ParameterDescription
    aClientpointer to the Comm session

    Returns: 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

    ParameterDescription
    aClienthandle to the client session

    Returns: 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.

    ParameterDescription
    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

    ParameterDescription
    aPtrpointer to the CPort with the timedout write

    Returns: KErrNone always.