#include <comms-infras/es_sap.h>
class ESock::CNetworkFlow : public ESock::CSubConnectionFlowBase, protected ESock::MSessionData, protected ESock::MSessionControl, protected ESock::MFlowBinderControl |
Protected Attributes | |
---|---|
TSockAddr | iLocalAddress |
MLowerControl * | iLowerControl |
MFlowBinderControl * | iLowerFlow |
TSockAddr | iRemoteAddress |
MSessionControlNotify * | iSessionControlNotify |
MSessionDataNotify * | iSessionDataNotify |
TUint | iStateFlags |
Protected Member Enumerations | |
---|---|
enum | TStateFlag { 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 &) |
void | BindToL(const TCFDataClient::TBindTo &) |
void | ClearIdle() |
void | ClearIdleSent() |
void | ClearLocalAddressSet() |
void | ClearNoBearerGuard() |
void | ClearRemoteAddressSet() |
void | ClearStarted() |
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() |
void | ProcessDCIdleState() |
TBool | RemoteAddressSet() |
void | SetIdle() |
void | SetIdleSent() |
void | SetLocalAddressSet() |
virtual void | SetLocalName(TSockAddr &) |
void | SetNoBearerGuard() |
virtual TInt | SetRemName(TSockAddr &) |
void | SetRemoteAddressSet() |
void | SetStarted() |
TBool | Started() |
virtual void | Unbind() |
void | UpdateDestinationAddress(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 |
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
TSockAddr | iLocalAddress | [protected] |
MLowerControl * | iLowerControl | [protected] |
MFlowBinderControl * | iLowerFlow | [protected] |
TSockAddr | iRemoteAddress | [protected] |
MSessionControlNotify * | iSessionControlNotify | [protected] |
MSessionDataNotify * | iSessionDataNotify | [protected] |
TUint | iStateFlags | [protected] |
Enumerator | Value | Description |
---|---|---|
ELocalAddressSet | 0x00000001 | |
ERemoteAddressSet | 0x00000002 | |
ENoBearerRunning | 0x00000004 | |
EStarted | 0x00000008 | |
EIdle | 0x00000080 | |
EIdleSent | 0x00000100 |
IMPORT_C | CNetworkFlow | ( | CSubConnectionFlowFactoryBase & | aFactory, |
const Messages::TNodeId & | aSubConn, | |||
CProtocolIntfBase * | aProtocolIntf | |||
) | [protected] |
IMPORT_C | ~CNetworkFlow | ( | ) | [virtual] |
TBool | ActivityRunning | ( | ) | [protected, pure virtual] |
MSessionData * | BindL | ( | MSessionDataNotify & | aNotify | ) | [protected, virtual] |
Reimplemented from ESock::MFlowBinderControl::BindL(MSessionDataNotify &)
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.
void | ClearIdle | ( | ) | [protected, inline] |
void | ClearIdleSent | ( | ) | [protected, inline] |
void | ClearLocalAddressSet | ( | ) | [protected, inline] |
void | ClearNoBearerGuard | ( | ) | [protected, inline] |
void | ClearRemoteAddressSet | ( | ) | [protected, inline] |
void | ClearStarted | ( | ) | [protected, inline] |
MFlowBinderControl * | DoGetBinderControlL | ( | ) | [protected, virtual] |
Reimplemented from ESock::CSubConnectionFlowBase::DoGetBinderControlL()
NetInterfaces::TInterfaceControl * | FetchInterfaceControlL | ( | TSupportedCommsApiExt | aInterfaceId | ) | [protected] |
CSubConnectionFlowBase * | Flow | ( | ) | [protected, virtual] |
Reimplemented from ESock::MFlowBinderControl::Flow()
MSessionControl * | GetControlL | ( | TInt | aSessionType, |
MSessionControlNotify & | aSessionControlNotify | |||
) | [protected, virtual] |
Reimplemented from ESock::MFlowBinderControl::GetControlL(TInt,MSessionControlNotify &)
TBool | Idle | ( | ) | [protected, inline] |
TBool | IdleSent | ( | ) | [protected, inline] |
TBool | IsBoundToSession | ( | ) | const [protected, inline] |
TBool | LocalAddressSet | ( | ) | [protected, inline] |
TBool | NoBearerGuard | ( | ) | [protected, inline] |
void | ProcessDCIdleState | ( | ) | [protected] |
TBool | RemoteAddressSet | ( | ) | [protected, inline] |
void | SetIdle | ( | ) | [protected, inline] |
void | SetIdleSent | ( | ) | [protected, inline] |
void | SetLocalAddressSet | ( | ) | [protected, inline] |
void | SetLocalName | ( | 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 | |
---|---|
anAddr | The address |
void | SetNoBearerGuard | ( | ) | [protected, inline] |
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 | |
---|---|
anAddr | The address |
void | SetRemoteAddressSet | ( | ) | [protected, inline] |
void | SetStarted | ( | ) | [protected, inline] |
TBool | Started | ( | ) | [protected, inline] |
void | Unbind | ( | ) | [protected, virtual] |
Reimplemented from ESock::MFlowBinderControl::Unbind()
void | UpdateDestinationAddress | ( | const TSockAddr & | aDest | ) | [protected] |
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 | |
---|---|
aDesc | The data to be sent. |
aOptions | Protocol specific options. |
anAddr | Address to write the data to. |
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 | |
---|---|
aData | The data to be sent. |
aOptions | Protocol specific options. |
anAddr | Address to write the data to. |