ESock::CTransportFlowShim Class Reference
class ESock::CTransportFlowShim : public ESock::CNetworkFlow |
Service Access Point Shim to convert CServProviderBase objects to CControlledServProvider objects.
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.
Since 9.0
Inherits from
- ESock::CTransportFlowShim
Protected Member Functions |
---|
| CTransportFlowShim(CSubConnectionFlowFactoryBase &, const Messages::TNodeId &, CProtocolIntfBase *) |
| ~CTransportFlowShim() |
void | ActiveOpen() |
void | BindToL(TCFDataClient::TBindTo &) |
CSubConnectionFlowBase & | CloneFlowL() |
TInt
| Control(TUint, TUint, TDes8 &) |
void | Destroy() |
void | ExtractSetOptExtensions() |
MSessionControl * | GetControlL(TInt, MSessionControlNotify &) |
MLowerControl * | GetControlL(const TDesC8 &) |
void | GetData(TDes8 &, TUint, TSockAddr *) |
void | Ioctl(TUint, TUint, TDes8 *) |
TInt
| LockToConnectionInfo() |
const Messages::TNodeId & | NodeId() |
TInt
| PassiveOpen(TUint) |
void | ReceivedL(const Messages::TRuntimeCtxId &, const Messages::TNodeId &, Messages::TSignatureBase &) |
void | Rejoin(const TCFFlow::TRejoin &) |
EDataClientRoutedGuard EShuttingDown EBearerExpected | SAP_FLAG_FUNCTIONS(DeleteUponBearerReception, EDeleteUponBearerReception) |
TInt
| SecurityCheck(MProvdSecurityChecker *) |
MLowerDataSender::TSendResult
| Send(RMBufChain &) |
void | SetBearerExpected() |
void | SetDataClientRoutedGuard() |
void | SetDeleteUponBearerReception() |
void | SetDetaching() |
void | SetFlowParamsInitialised() |
void | SetLocalName(TSockAddr &) |
TInt
| SetOption(TUint, TUint, const TDesC8 &) |
void | SetProtocolOptions() |
TInt
| SetRemName(TSockAddr &) |
void | SetSockType(TUint) |
void | Shutdown(MSessionControl::TCloseType) |
void | Shutdown(MSessionControl::TCloseType, const TDesC8 &) |
TBool
| ShuttingDown() |
void | Start() |
void | StartFlowL(const Messages::TRuntimeCtxId &) |
void | StopFlow(TCFDataClient::TStop &) |
TBool
| Stopped() |
void | StoreProvision(TCFDataClient::TProvisionConfig &) |
void | SubConnectionError(const Messages::TEBase::TError &, TUint) |
void | Unbind() |
void | Unbind(MUpperDataReceiver *, MUpperControl *) |
TBool
| UseBearerErrors() |
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::CNetworkFlow::BindToL(const TCFDataClient::TBindTo &) |
| ESock::CNetworkFlow::CNetworkFlow(CSubConnectionFlowFactoryBase &,const Messages::TNodeId &,CProtocolIntfBase *) |
| ESock::CNetworkFlow::ClearIdle() |
| ESock::CNetworkFlow::ClearIdleSent() |
| ESock::CNetworkFlow::ClearLocalAddressSet() |
| ESock::CNetworkFlow::ClearNoBearerGuard() |
| ESock::CNetworkFlow::ClearRemoteAddressSet() |
| ESock::CNetworkFlow::ClearStarted() |
| ESock::CNetworkFlow::DoGetBinderControlL() |
| ESock::CNetworkFlow::FetchInterfaceControlL(TSupportedCommsApiExt) |
| ESock::CNetworkFlow::Flow() |
| ESock::CNetworkFlow::Idle() |
| ESock::CNetworkFlow::IdleSent() |
| ESock::CNetworkFlow::IsBoundToSession()const |
| ESock::CNetworkFlow::LocalAddressSet() |
| ESock::CNetworkFlow::NoBearerGuard() |
| ESock::CNetworkFlow::ProcessDCIdleState() |
| ESock::CNetworkFlow::RemoteAddressSet() |
| ESock::CNetworkFlow::SetIdle() |
| ESock::CNetworkFlow::SetIdleSent() |
| ESock::CNetworkFlow::SetLocalAddressSet() |
| ESock::CNetworkFlow::SetNoBearerGuard() |
| ESock::CNetworkFlow::SetRemoteAddressSet() |
| ESock::CNetworkFlow::SetStarted() |
| ESock::CNetworkFlow::Started() |
| ESock::CNetworkFlow::UpdateDestinationAddress(const TSockAddr &) |
| ESock::CNetworkFlow::~CNetworkFlow() |
| 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::SubConnectionGoingDown() |
| ESock::CSubConnectionFlowBase::~CSubConnectionFlowBase() |
Constructor & Destructor Documentation
CTransportFlowShim(CSubConnectionFlowFactoryBase &, const Messages::TNodeId &, CProtocolIntfBase *)
~CTransportFlowShim()
~CTransportFlowShim | ( | ) | [protected, virtual] |
Member Functions Documentation
ActiveOpen()
void | ActiveOpen | ( | ) | [protected, virtual] |
BindToL(TCFDataClient::TBindTo &)
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.
CanClose(MSocketNotify::TDelete)
CanClose(const TDesC8 &, MSocketNotify::TDelete)
CloneNSetSAP(CServProviderBase &)
CompleteStart(TInt)
void | CompleteStart | ( | TInt | aError | ) | [private] |
ConnectComplete()
void | ConnectComplete | ( | ) | [private, virtual] |
ConnectComplete(const TDesC8 &)
void | ConnectComplete | ( | const TDesC8 & | aConnectData | ) | [private, virtual] |
ConnectComplete(CServProviderBase &)
ConnectComplete(CServProviderBase &, const TDesC8 &)
Control(TUint, TUint, TDes8 &)
Disconnect(void)
void | Disconnect | ( | void | | ) | [private, virtual] |
DoNoBearer()
TBool
| DoNoBearer | ( | ) | [private] |
Do the actual no Bearer call.
Error(TInt, TUint)
void | Error | ( | TInt | anError, |
| TUint | anOperationMask = MSocketNotify::EErrorAllOperations |
| ) | [private, virtual] |
Parameters
TInt anError | |
TUint anOperationMask = MSocketNotify::EErrorAllOperations | |
ExtractSetOptExtensions()
void | ExtractSetOptExtensions | ( | ) | [protected] |
GetControlL(TInt, MSessionControlNotify &)
GetControlL(const TDesC8 &)
GetData(TDes8 &, TUint, TSockAddr *)
InitDestroy()
void | InitDestroy | ( | ) | [private] |
Ioctl(TUint, TUint, TDes8 *)
Performs some protocol specific IO control.
Note:
If this function is called erroneously, the protocol should call Error() on the socket. If an Ioctl call is already outstanding, the client will be panicked with the value ETwoIoctls.
Parameters
TUint aLevel | Option level. |
TUint aName | Option name. |
TDes8 * anOption | Option data. |
IoctlComplete(TDesC8 *)
void | IoctlComplete | ( | TDesC8 * | aBuf | ) | [private, virtual] |
LockToConnectionInfo()
TInt
| LockToConnectionInfo | ( | ) | [protected] |
NewData(TUint)
void | NewData | ( | TUint | aCount | ) | [private, virtual] |
NewL(CSubConnectionFlowFactoryBase &, const Messages::TNodeId &, CProtocolIntfBase *)
NoBearer(const TDesC8 &)
void | NoBearer | ( | const TDesC8 & | aConnectionParams | ) | [private, virtual] |
Upcall from protocol indicating no underlying bearer for the socket.
Parameters
const TDesC8 & aConnectionParams | Additional connection parameters from the stack, in the form of a human readable string. Initially, the required protocols (e.g. "protocol=ip"). |
NoBearerCompletion()
void | NoBearerCompletion | ( | ) | [private] |
PassiveOpen(TUint)
TInt
| PassiveOpen | ( | TUint | aQueueSize | ) | [protected, virtual] |
Tells the protocol to start waiting for an incoming connection request on this socket (i.e. port). It is called by the socket server in response to a listen request from a client.
Only ever called on connection-oriented sockets. Such a socket should always have both the local address and the remote address specified before this function is called. If this is not the case, then the protocol should panic.
The aQue parameter is the number of sockets which can be waiting for an outstanding Start after calling ConnectComplete(). The protocol should keep a count of sockets in this state - incrementing a variable in ConnectComplete(), and decrementing it in Start().
When a connection has completed, the protocol should call ConnectComplete() on its TNotify. If an error occurs during connection the protocol should not call ConnectComplete() at all; instead it should call Error().
PostDataClientRouted()
void | PostDataClientRouted | ( | ) | [private] |
PostNoBearer()
void | PostNoBearer | ( | ) | [private] |
ReceivedL(const Messages::TRuntimeCtxId &, const Messages::TNodeId &, Messages::TSignatureBase &)
Rejoin(const TCFFlow::TRejoin &)
SAP_FLAG_FUNCTIONS(DeleteUponBearerReception, EDeleteUponBearerReception)
EDataClientRoutedGuard EShuttingDown EBearerExpected | SAP_FLAG_FUNCTIONS | ( | DeleteUponBearerReception | , |
| EDeleteUponBearerReception | |
| ) | [protected] |
Parameters
DeleteUponBearerReception | |
EDeleteUponBearerReception | |
SecurityCheck(MProvdSecurityChecker *)
Ask the SAP provider to perform a security policy check on the client process (default implementation).
SetBearerExpected()
void | SetBearerExpected | ( | ) | [protected, inline] |
SetDataClientRoutedGuard()
void | SetDataClientRoutedGuard | ( | ) | [protected, inline] |
SetDeleteUponBearerReception()
void | SetDeleteUponBearerReception | ( | ) | [protected, inline] |
SetDetaching()
void | SetDetaching | ( | ) | [protected, inline] |
SetFlowParams(const TFlowParams &)
void | SetFlowParams | ( | const TFlowParams & | aFlowParams | ) | [private, inline] |
SetFlowParamsInitialised()
void | SetFlowParamsInitialised | ( | ) | [protected, inline] |
SetLocalName(TSockAddr &)
void | SetLocalName | ( | TSockAddr & | anAddr | ) | [protected, virtual] |
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.
SetLocalNameProcess()
void | SetLocalNameProcess | ( | ) | [private] |
SetOption(TUint, TUint, const TDesC8 &)
Sets some protocol specific option when called by the socket server on behalf of a client. A protocol may pass the request down a protocol stack (to protocols it is bound to) using the SetOption() function of CProtocolBase.
Parameters
TUint aLevel | Option level. |
TUint aName | Option name. |
const TDesC8 & anOption | Option data. |
SetProtocolOptions()
void | SetProtocolOptions | ( | ) | [protected] |
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.
SetSSP(CServProviderBase &)
SetSockType(TUint)
void | SetSockType | ( | TUint | aSockType | ) | [protected] |
Shutdown(MSessionControl::TCloseType)
Terminates a connection (or closes a non connection-oriented socket down).
The value of the option argument specifies the type of processing which will be required of the protocol after this function is called.
Normally, when the socket server has called Shutdown() for a socket, it will wait for the socket to call CanClose() before destroying the CServProviderBase object. However, if the option argument is EImmediate, the CServProviderBase will be destroyed as soon as Shutdown() returns.
Shutdown(MSessionControl::TCloseType, const TDesC8 &)
ShuttingDown()
TBool
| ShuttingDown | ( | ) | [protected, inline] |
Start()
void | Start | ( | ) | [protected, virtual] |
Start a service provider.
StartFlowL(const Messages::TRuntimeCtxId &)
StopFlow(TCFDataClient::TStop &)
Stopped()
TBool
| Stopped | ( | ) | [protected, inline] |
StoreProvision(TCFDataClient::TProvisionConfig &)
SubConnectionError(const Messages::TEBase::TError &, TUint)
void | SubConnectionError | ( | const Messages::TEBase::TError & | errorMsg, |
| TUint | anOperationMask = (MSessionControlNotify::EErrorSend|MSessionControlNotify::EErrorConnect|MSessionControlNotify::EErrorCompleteSetLocalName) |
| ) | [protected] |
Parameters
const Messages::TEBase::TError & errorMsg | |
TUint anOperationMask = (MSessionControlNotify::EErrorSend|MSessionControlNotify::EErrorConnect|MSessionControlNotify::EErrorCompleteSetLocalName) | |
Unbind()
void | Unbind | ( | ) | [protected, virtual] |
Unbind(MUpperDataReceiver *, MUpperControl *)
UseBearerErrors()
TBool
| UseBearerErrors | ( | ) | [protected, inline] |
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
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 *)
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
EDetaching = 0x0001000 | |
EDataClientRoutedGuard = 0x00020000 | |
EStopped = 0x00040000 | |
EShuttingDown = 0x00080000 | |
EFlowParamsInitialised = 0x00100000 | |
EBearerExpected = 0x00200000 | |
EDeleteUponBearerReception = 0x00400000 | |
EUseBearerErrors = 0x00800000 | |
Member Type Definitions Documentation
Member Data Documentation
MUpperControl * iHostResolverNotify
TSoIfConnectionInfo
iIfInfo
MSessionControlNotify * iListenerControlNotify
CProtocolRef * iProtocolReference
CProtocolRef * | iProtocolReference | [private] |
CServProviderBase * iProvider
Messages::RRequestOriginator
iStartRequest
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.