ESock::CNetworkFlow Class Reference

#include <comms-infras/es_sap.h>

class ESock::CNetworkFlow : public ESock::CSubConnectionFlowBase, protected ESock::MSessionData, protected ESock::MSessionControl, protected ESock::MFlowBinderControl

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 *)
    pure virtual TBool ActivityRunning()
    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()
    virtual voidSetLocalName(TSockAddr &)
    voidSetNoBearerGuard()
    virtual TInt SetRemName(TSockAddr &)
    voidSetRemoteAddressSet()
    voidSetStarted()
    TBool Started()
    virtual voidUnbind()
    voidUpdateDestinationAddress(const TSockAddr &)
    virtual TUint Write(const TDesC8 &, TUint, TSockAddr *)
    virtual TInt Write(RMBufChain &, TUint, TSockAddr *)
    Inherited Attributes
    ESock::CCommsProviderBase::iAccessPointConfig
    ESock::CSubConnectionFlowBase::iLastRequestOriginator
    ESock::CSubConnectionFlowBase::iProtocolIntf
    ESock::CSubConnectionFlowBase::iSubConnectionProvider
    Inherited Enumerations
    ESock::MSessionControl:TCloseType
    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::ACommsFactoryNodeId::ACommsFactoryNodeId(CCommsFactoryBase &)
    ESock::ACommsFactoryNodeId::~ACommsFactoryNodeId()
    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()
    ESock::MFlowBinderControl::BindL(const TDesC8 &,MUpperDataReceiver *,MUpperControl *)
    ESock::MFlowBinderControl::CloneFlowL()
    ESock::MFlowBinderControl::GetControlL(const TDesC8 &)
    ESock::MFlowBinderControl::Unbind(MUpperDataReceiver *,MUpperControl *)
    ESock::MSessionControl::ActiveOpen()
    ESock::MSessionControl::ActiveOpen(const TDesC8 &)
    ESock::MSessionControl::AutoBind()
    ESock::MSessionControl::CancelIoctl(TUint,TUint)
    ESock::MSessionControl::GetOption(TUint,TUint,TDes8 &)const
    ESock::MSessionControl::Ioctl(TUint,TUint,TDes8 *)
    ESock::MSessionControl::LocalName(TSockAddr &)const
    ESock::MSessionControl::PassiveOpen(TUint)
    ESock::MSessionControl::PassiveOpen(TUint,const TDesC8 &)
    ESock::MSessionControl::RemName(TSockAddr &)const
    ESock::MSessionControl::SecurityCheck(MProvdSecurityChecker *)
    ESock::MSessionControl::SetOption(TUint,TUint,const TDesC8 &)
    ESock::MSessionControl::Shutdown(MSessionControl::TCloseType)
    ESock::MSessionControl::Shutdown(MSessionControl::TCloseType,const TDesC8 &)
    ESock::MSessionControl::Start()
    ESock::MSessionData::GetData(RMBufChain &,TUint,TUint,TSockAddr *)
    ESock::MSessionData::GetData(TDes8 &,TUint,TSockAddr *)
    Factories::AFactoryObject::AFactoryObject(CFactoryBase &)
    Factories::AFactoryObject::DeleteMeNow()
    Factories::AFactoryObject::MarkMeForDeletion()
    Factories::AFactoryObject::~AFactoryObject()
    Messages::ANode::FetchNodeInterfaceL(TInt)
    Messages::ANodeId::ANodeId(ANode &)
    Messages::ANodeId::ANodeId(TAny *)
    Messages::ANodeId::Id()const
    Messages::ANodeId::UnregisterSelf()
    Messages::ASimpleNodeIdBase::ASimpleNodeIdBase()
    Messages::ASimpleNodeIdBase::NodeId()const
    NetInterfaces::AApiExtBase::DoFetchInterfaceControlL(TInt)
    NetInterfaces::AApiExtBase::FetchExtInterface(TInt)
    NetInterfaces::AApiExtBase::FetchExtInterfaceControlL(TInt)
    NetInterfaces::AApiExtBase::FetchExtInterfaceL(TInt)
    NetInterfaces::AApiExtBase::SupportsExtInterface(TInt)const

    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

    ActivityRunning ( )

    TBool ActivityRunning()[protected, pure virtual]

    BindL ( MSessionDataNotify & )

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

    Reimplemented from ESock::MFlowBinderControl::BindL(MSessionDataNotify &)

    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]

    Reimplemented from ESock::CSubConnectionFlowBase::DoGetBinderControlL()

    FetchInterfaceControlL ( TSupportedCommsApiExt )

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

    Flow ( )

    CSubConnectionFlowBase *Flow()[protected, virtual]

    Reimplemented from ESock::MFlowBinderControl::Flow()

    GetControlL ( TInt, MSessionControlNotify & )

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

    Reimplemented from ESock::MFlowBinderControl::GetControlL(TInt,MSessionControlNotify &)

    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, virtual]

    Reimplemented from ESock::MSessionControl::SetLocalName(TSockAddr &)

    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.

    Parameters
    anAddrThe address
    Return Value
    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, virtual]

    Reimplemented from ESock::MSessionControl::SetRemName(TSockAddr &)

    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.

    Parameters
    anAddrThe address
    Return Value
    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]

    Reimplemented from ESock::MFlowBinderControl::Unbind()

    UpdateDestinationAddress ( const TSockAddr & )

    voidUpdateDestinationAddress(const TSockAddr &aDest)[protected]

    Write ( const TDesC8 &, TUint, TSockAddr * )

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

    Reimplemented from ESock::MSessionData::Write(const TDesC8 &,TUint,TSockAddr *)

    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.

    Parameters
    aDescThe data to be sent.
    aOptionsProtocol specific options.
    anAddrAddress to write the data to.
    Return Value
    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, virtual]

    Reimplemented from ESock::MSessionData::Write(RMBufChain &,TUint,TSockAddr *)

    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.

    Parameters
    aDataThe data to be sent.
    aOptionsProtocol specific options.
    anAddrAddress to write the data to.
    Return Value
    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.