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 &)
void
|
BindToL
|
(
|
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
TCFDataClient::TBindTo
& aBindTo
|
|
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 &)
TInt
|
Control
|
(
|
TUint
|
aLevel,
|
|
TUint
|
aName,
|
|
TDes8
&
|
aOption
|
|
)
|
[protected, virtual]
|
Parameters
TUint
aLevel
|
|
TUint
aName
|
|
TDes8
& aOption
|
|
Destroy()
void
|
Destroy
|
(
|
)
|
[protected]
|
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 *)
void
|
GetData
|
(
|
TDes8
&
|
aDesc,
|
|
TUint
|
aOptions,
|
|
TSockAddr
*
|
anAddr
|
|
)
|
[protected, virtual]
|
InitDestroy()
void
|
InitDestroy
|
(
|
)
|
[private]
|
Ioctl(TUint, TUint, TDes8 *)
void
|
Ioctl
|
(
|
TUint
|
aLevel,
|
|
TUint
|
aName,
|
|
TDes8
*
|
anOption
|
|
)
|
[protected, virtual]
|
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 &)
void
|
Rejoin
|
(
|
const
TCFFlow::TRejoin
&
|
aRejoinMessage
|
)
|
[protected]
|
Parameters
const
TCFFlow::TRejoin
& aRejoinMessage
|
|
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 &)
TInt
|
SetOption
|
(
|
TUint
|
aLevel,
|
|
TUint
|
aName,
|
|
const
TDesC8
&
|
anOption
|
|
)
|
[protected, virtual]
|
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 &)
TInt
|
SetRemName
|
(
|
TSockAddr
&
|
anAddr
|
)
|
[protected, virtual]
|
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 &)
void
|
StopFlow
|
(
|
TCFDataClient::TStop
&
|
aMessage
|
)
|
[protected]
|
Parameters
TCFDataClient::TStop
& aMessage
|
|
Stopped()
TBool
|
Stopped
|
(
|
)
|
[protected, inline]
|
StoreProvision(TCFDataClient::TProvisionConfig &)
void
|
StoreProvision
|
(
|
TCFDataClient::TProvisionConfig
&
|
aMessage
|
)
|
[protected]
|
Parameters
TCFDataClient::TProvisionConfig
& aMessage
|
|
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 *)
TUint
|
Write
|
(
|
const
TDesC8
&
|
aDesc,
|
|
TUint
|
aOptions,
|
|
TSockAddr
*
|
anAddr
|
|
)
|
[protected, virtual]
|
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.