ESock::CNetworkFlow Class Reference

#include <comms-infras/es_sap.h>

class ESock::CNetworkFlow : public ESock::CSubConnectionFlowBase

Inherits from

  • ESock::CNetworkFlow
    Protected Attributes
    TSockAddr iLocalAddress
    MLowerControl *iLowerControl
    MFlowBinderControl *iLowerFlow
    TSockAddr iRemoteAddress
    MSessionControlNotify *iSessionControlNotify
    MSessionDataNotify *iSessionDataNotify
    TUint iStateFlags
    Protected Member Enumerations
    enumTStateFlag { ELocalAddressSet, ERemoteAddressSet, ENoBearerRunning, EStarted, ..., EIdleSent }
    Public Member Functions
    virtual ~CNetworkFlow()
    Protected Member Functions
    CNetworkFlow(CSubConnectionFlowFactoryBase &, const Messages::TNodeId &, CProtocolIntfBase *)
    virtual MSessionData *BindL(MSessionDataNotify &)
    voidBindToL(const TCFDataClient::TBindTo &)
    voidClearIdle()
    voidClearIdleSent()
    voidClearLocalAddressSet()
    voidClearNoBearerGuard()
    voidClearRemoteAddressSet()
    voidClearStarted()
    virtual MFlowBinderControl *DoGetBinderControlL()
    NetInterfaces::TInterfaceControl *FetchInterfaceControlL(TSupportedCommsApiExt)
    virtual CSubConnectionFlowBase *Flow()
    virtual MSessionControl *GetControlL(TInt, MSessionControlNotify &)
    TBool Idle()
    TBool IdleSent()
    TBool IsBoundToSession()
    TBool LocalAddressSet()
    TBool NoBearerGuard()
    voidProcessDCIdleState()
    TBool RemoteAddressSet()
    voidSetIdle()
    voidSetIdleSent()
    voidSetLocalAddressSet()
    voidSetLocalName(TSockAddr &)
    voidSetNoBearerGuard()
    TInt SetRemName(TSockAddr &)
    voidSetRemoteAddressSet()
    voidSetStarted()
    TBool Started()
    virtual voidUnbind()
    voidUpdateDestinationAddress(const TSockAddr &)
    TUint Write(const TDesC8 &, TUint, TSockAddr *)
    TInt Write(RMBufChain &, TUint, TSockAddr *)
    Inherited Attributes
    ESock::CCommsProviderBase::iAccessPointConfig
    ESock::CSubConnectionFlowBase::iLastRequestOriginator
    ESock::CSubConnectionFlowBase::iProtocolIntf
    ESock::CSubConnectionFlowBase::iSubConnectionProvider
    Inherited Functions
    CBase::CBase()
    CBase::Delete(CBase *)
    CBase::Extension_(TUint,TAny *&,TAny *)
    CBase::operator new(TUint)
    CBase::operator new(TUint,TAny *)
    CBase::operator new(TUint,TLeave)
    CBase::operator new(TUint,TLeave,TUint)
    CBase::operator new(TUint,TUint)
    CBase::~CBase()
    ESock::CCommsProviderBase::AccessPointConfig()const
    ESock::CCommsProviderBase::~CCommsProviderBase()
    ESock::CSubConnectionFlowBase::CSubConnectionFlowBase(CSubConnectionFlowFactoryBase &,const Messages::TNodeId &,CProtocolIntfBase *)
    ESock::CSubConnectionFlowBase::ControlProvider()const
    ESock::CSubConnectionFlowBase::DeleteThisFlow()
    ESock::CSubConnectionFlowBase::Factory()const
    ESock::CSubConnectionFlowBase::FetchNodeInterfaceControlL(TInt)
    ESock::CSubConnectionFlowBase::GetBinderControlL()
    ESock::CSubConnectionFlowBase::HasControlPlane()const
    ESock::CSubConnectionFlowBase::ProtocolIntf()const
    ESock::CSubConnectionFlowBase::ReceivedL(const Messages::TRuntimeCtxId &,const Messages::TNodeId &,Messages::TSignatureBase &)
    ESock::CSubConnectionFlowBase::SubConnectionGoingDown()
    ESock::CSubConnectionFlowBase::~CSubConnectionFlowBase()

    Detailed Description

    Service Access Point for SAPs that have a seperate control side.

    Provides transport services to a single protocol. Several of the calls to CServProviderBase have pre-conditions attached to them - for example a connection oriented protocol must have its local address set (either by a SetLocalName() or AutoBind()) before it is opened. If the socket server calls the CServProviderBase in such an erroneous way, the protocol should panic.

    It also provides an interface towards subconnection providers to allow SAPs to work with a seperate control path.

    Since 9.0

    Member Attribute Documentation

    iLocalAddress

    TSockAddr iLocalAddress[protected]

    iLowerControl

    MLowerControl *iLowerControl[protected]

    iLowerFlow

    MFlowBinderControl *iLowerFlow[protected]

    iRemoteAddress

    TSockAddr iRemoteAddress[protected]

    iSessionControlNotify

    MSessionControlNotify *iSessionControlNotify[protected]

    iSessionDataNotify

    MSessionDataNotify *iSessionDataNotify[protected]

    iStateFlags

    TUint iStateFlags[protected]

    Member Enumeration Documentation

    Enum TStateFlag

    EnumeratorValueDescription
    ELocalAddressSet0x00000001
    ERemoteAddressSet0x00000002
    ENoBearerRunning0x00000004
    EStarted0x00000008
    EIdle0x00000080
    EIdleSent0x00000100

    Constructor & Destructor Documentation

    CNetworkFlow ( CSubConnectionFlowFactoryBase &, const Messages::TNodeId &, CProtocolIntfBase * )

    IMPORT_CCNetworkFlow(CSubConnectionFlowFactoryBase &aFactory,
    const Messages::TNodeId &aSubConn,
    CProtocolIntfBase *aProtocolIntf
    )[protected]

    ~CNetworkFlow ( )

    IMPORT_C~CNetworkFlow()[virtual]

    Member Function Documentation

    BindL ( MSessionDataNotify & )

    MSessionData *BindL(MSessionDataNotify &aNotify)[protected, virtual]

    BindToL ( const TCFDataClient::TBindTo & )

    voidBindToL(const TCFDataClient::TBindTo &aBindTo)[protected]

    Request from control side (at network layer) to indicate that the SubConnection is up and running and that we should bind to a Flow below.

    ClearIdle ( )

    voidClearIdle()[protected, inline]

    ClearIdleSent ( )

    voidClearIdleSent()[protected, inline]

    ClearLocalAddressSet ( )

    voidClearLocalAddressSet()[protected, inline]

    ClearNoBearerGuard ( )

    voidClearNoBearerGuard()[protected, inline]

    ClearRemoteAddressSet ( )

    voidClearRemoteAddressSet()[protected, inline]

    ClearStarted ( )

    voidClearStarted()[protected, inline]

    DoGetBinderControlL ( )

    MFlowBinderControl *DoGetBinderControlL()[protected, virtual]

    FetchInterfaceControlL ( TSupportedCommsApiExt )

    NetInterfaces::TInterfaceControl *FetchInterfaceControlL(TSupportedCommsApiExtaInterfaceId)[protected]

    Flow ( )

    CSubConnectionFlowBase *Flow()[protected, virtual]

    GetControlL ( TInt, MSessionControlNotify & )

    MSessionControl *GetControlL(TIntaSessionType,
    MSessionControlNotify &aSessionControlNotify
    )[protected, virtual]

    Idle ( )

    TBool Idle()[protected, inline]

    IdleSent ( )

    TBool IdleSent()[protected, inline]

    IsBoundToSession ( )

    TBool IsBoundToSession()const [protected, inline]

    LocalAddressSet ( )

    TBool LocalAddressSet()[protected, inline]

    NoBearerGuard ( )

    TBool NoBearerGuard()[protected, inline]

    ProcessDCIdleState ( )

    voidProcessDCIdleState()[protected]

    RemoteAddressSet ( )

    TBool RemoteAddressSet()[protected, inline]

    SetIdle ( )

    voidSetIdle()[protected, inline]

    SetIdleSent ( )

    voidSetIdleSent()[protected, inline]

    SetLocalAddressSet ( )

    voidSetLocalAddressSet()[protected, inline]

    SetLocalName ( TSockAddr & )

    voidSetLocalName(TSockAddr &anAddr)[protected]

    Sets the local name (address) of the socket service provider entity. The format of the data in the TSockAddr object is defined by individual protocols.

    ParameterDescription
    anAddrThe address

    Returns: Returns KErrNone if the local name is correctly set or, if this is not the case, an informative error number.

    SetNoBearerGuard ( )

    voidSetNoBearerGuard()[protected, inline]

    SetRemName ( TSockAddr & )

    TInt SetRemName(TSockAddr &anAddr)[protected]

    Sets the remote name (address) of the socket service provider entity. The format of the data in the TSockAddr object is defined by individual protocols.

    ParameterDescription
    anAddrThe address

    Returns: Returns KErrNone if the remote name is correctly set or, if this is not the case, an informative error number.

    SetRemoteAddressSet ( )

    voidSetRemoteAddressSet()[protected, inline]

    SetStarted ( )

    voidSetStarted()[protected, inline]

    Started ( )

    TBool Started()[protected, inline]

    Unbind ( )

    voidUnbind()[protected, virtual]

    UpdateDestinationAddress ( const TSockAddr & )

    voidUpdateDestinationAddress(const TSockAddr &aDest)[protected]

    Write ( const TDesC8 &, TUint, TSockAddr * )

    TUint Write(const TDesC8 &aDesc,
    TUintaOptions,
    TSockAddr *anAddr
    )[protected]

    Sends data onto the network via the protocol.

    Connection-oriented sockets must be in a connected state (that is ConnectComplete() has been called on their MSocketNotify before Write() is called).

    The socket server keeps track of how much data is waiting and then tries to send it all until the protocol tells it to hold off by returning 0 (datagram sockets) or 'less than all data consumed' (stream sockets) to Write(). The protocol should call CanSend() when it is ready to send more data.

    anAddr is the address to write the data to. Connection oriented sockets always use the default value.

    ParameterDescription
    aDescThe data to be sent.
    aOptionsProtocol specific options.
    anAddrAddress to write the data to.

    Returns: For stream-oriented protocols the return value is the number of bytes actually written. If this is less than the length of the descriptor then the protocol should call CanSend() when it is ready to send more data. For datagram-oriented protocols, the write should return either 0 if the write cannot be completed, or the length of the descriptor if the write succeeds - no other values are valid. If the Write() must return 0, then it should call CanSend() when it is ready to send more data. If the Write() fails due to some error, then it should call Error() with an informative error number.

    Write ( RMBufChain &, TUint, TSockAddr * )

    TInt Write(RMBufChain &aData,
    TUintaOptions,
    TSockAddr *anAddr
    )[protected]

    Sends data onto the network via the protocol.

    Connection-oriented sockets must be in a connected state (that is ConnectComplete() has been called on their MSocketNotify before Write() is called).

    The socket server keeps track of how much data is waiting and then tries to send it all until the protocol tells it to hold off by returning 0 (datagram sockets) or 'less than all data consumed' (stream sockets) to Write(). The protocol should call CanSend() when it is ready to send more data.

    anAddr is the address to write the data to. Connection oriented sockets always use the default value.

    ParameterDescription
    aDataThe data to be sent.
    aOptionsProtocol specific options.
    anAddrAddress to write the data to.

    Returns: For stream-oriented protocols the return value is the number of bytes actually written. If this is less than the length of the descriptor then the protocol should call CanSend() when it is ready to send more data. For datagram-oriented protocols, the write should return either 0 if the write cannot be completed, or the length of the descriptor if the write succeeds - no other values are valid. If the Write() must return 0, then it should call CanSend() when it is ready to send more data. If the Write() fails due to some error, then it should call Error() with an informative error number.