ESock::CNetworkFlow Class Reference

class ESock::CNetworkFlow : public ESock::CSubConnectionFlowBase

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

Public Member Functions
~CNetworkFlow ()
Protected Member Functions
CNetworkFlow ( CSubConnectionFlowFactoryBase &, const Messages::TNodeId &, CProtocolIntfBase *)
MSessionData * BindL ( MSessionDataNotify &)
void BindToL (const TCFDataClient::TBindTo &)
MFlowBinderControl * DoGetBinderControlL ()
NetInterfaces::TInterfaceControl * FetchInterfaceControlL (TSupportedCommsApiExt)
CSubConnectionFlowBase * Flow ()
MSessionControl * GetControlL ( TInt , MSessionControlNotify &)
TBool IsBoundToSession ()
void ProcessDCIdleState ()
void SetIdle ()
void SetIdleSent ()
void SetLocalAddressSet ()
void SetLocalName ( TSockAddr &)
void SetNoBearerGuard ()
TInt SetRemName ( TSockAddr &)
void SetRemoteAddressSet ()
TBool Started ()
void Unbind ()
void UpdateDestinationAddress (const TSockAddr &)
TUint Write (const TDesC8 &, TUint , TSockAddr *)
TInt Write ( RMBufChain &, TUint , TSockAddr *)
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()
Protected Member Enumerations
enum TStateFlag {
ELocalAddressSet  = 0x00000001, ERemoteAddressSet  = 0x00000002, ENoBearerRunning  = 0x00000004, EStarted  = 0x00000008, EIdle  = 0x00000080, EIdleSent  = 0x00000100
}
Protected Attributes
TSockAddr iLocalAddress
MLowerControl * iLowerControl
MFlowBinderControl * iLowerFlow
TSockAddr iRemoteAddress
MSessionControlNotify * iSessionControlNotify
MSessionDataNotify * iSessionDataNotify
TUint iStateFlags
Inherited Attributes
ESock::CCommsProviderBase::iAccessPointConfig
ESock::CSubConnectionFlowBase::iLastRequestOriginator
ESock::CSubConnectionFlowBase::iProtocolIntf
ESock::CSubConnectionFlowBase::iSubConnectionProvider

Constructor & Destructor Documentation

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

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

Parameters

CSubConnectionFlowFactoryBase & aFactory
const Messages::TNodeId & aSubConn
CProtocolIntfBase * aProtocolIntf

~CNetworkFlow()

IMPORT_C ~CNetworkFlow ( ) [virtual]

Member Functions Documentation

BindL(MSessionDataNotify &)

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

Parameters

MSessionDataNotify & aNotify

BindToL(const TCFDataClient::TBindTo &)

void BindToL ( 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.

Parameters

const TCFDataClient::TBindTo & aBindTo

DoGetBinderControlL()

MFlowBinderControl * DoGetBinderControlL ( ) [protected, virtual]

FetchInterfaceControlL(TSupportedCommsApiExt)

NetInterfaces::TInterfaceControl * FetchInterfaceControlL ( TSupportedCommsApiExt aInterfaceId ) [protected]

Parameters

TSupportedCommsApiExt aInterfaceId

Flow()

CSubConnectionFlowBase * Flow ( ) [protected, virtual]

GetControlL(TInt, MSessionControlNotify &)

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

Parameters

TInt aSessionType
MSessionControlNotify & aSessionControlNotify

IsBoundToSession()

TBool IsBoundToSession ( ) const [protected, inline]

ProcessDCIdleState()

void ProcessDCIdleState ( ) [protected]

SetIdle()

void SetIdle ( ) [protected, inline]

SetIdleSent()

void SetIdleSent ( ) [protected, inline]

SetLocalAddressSet()

void SetLocalAddressSet ( ) [protected, inline]

SetLocalName(TSockAddr &)

void SetLocalName ( 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.

Parameters

TSockAddr & anAddr The address

SetNoBearerGuard()

void SetNoBearerGuard ( ) [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.

Parameters

TSockAddr & anAddr The address

SetRemoteAddressSet()

void SetRemoteAddressSet ( ) [protected, inline]

Started()

TBool Started ( ) [protected, inline]

Unbind()

void Unbind ( ) [protected, virtual]

UpdateDestinationAddress(const TSockAddr &)

void UpdateDestinationAddress ( const TSockAddr & aDest ) [protected]

Parameters

const TSockAddr & aDest

Write(const TDesC8 &, TUint, TSockAddr *)

TUint Write ( const TDesC8 & aDesc,
TUint aOptions,
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.

Parameters

const TDesC8 & aDesc The data to be sent.
TUint aOptions Protocol specific options.
TSockAddr * anAddr Address to write the data to.

Write(RMBufChain &, TUint, TSockAddr *)

TInt Write ( RMBufChain & aData,
TUint aOptions,
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.

Parameters

RMBufChain & aData The data to be sent.
TUint aOptions Protocol specific options.
TSockAddr * anAddr Address to write the data to.

Member Enumerations Documentation

Enum TStateFlag

Enumerators

ELocalAddressSet = 0x00000001
ERemoteAddressSet = 0x00000002
ENoBearerRunning = 0x00000004
EStarted = 0x00000008
EIdle = 0x00000080
EIdleSent = 0x00000100

Member Data Documentation

TSockAddr iLocalAddress

TSockAddr iLocalAddress [protected]

MLowerControl * iLowerControl

MLowerControl * iLowerControl [protected]

MFlowBinderControl * iLowerFlow

MFlowBinderControl * iLowerFlow [protected]

TSockAddr iRemoteAddress

TSockAddr iRemoteAddress [protected]

MSessionControlNotify * iSessionControlNotify

MSessionControlNotify * iSessionControlNotify [protected]

MSessionDataNotify * iSessionDataNotify

MSessionDataNotify * iSessionDataNotify [protected]

TUint iStateFlags

TUint iStateFlags [protected]