CWapBoundDatagramService Class Reference

class CWapBoundDatagramService : public CBase

Bound WDP Sends and receives datagrams over WDP using a specified local port.

The class is an ECom plug-in interface. Clients use NewL() to request an implementation of the interface, and then call the interface's virtual functions to access the implementation's services.

The use of the plug-in architecture allows different implementations to use different underlying WAP stacks.

Functions can return system wide error codes, and also API-specific errors as defined in wapmsgerr.h.

Inherits from

  • CWapBoundDatagramService

Constructor & Destructor Documentation

CWapBoundDatagramService()

IMPORT_CCWapBoundDatagramService()[protected]

~CWapBoundDatagramService()

IMPORT_C~CWapBoundDatagramService()[virtual]

Destructor

Member Functions Documentation

AwaitRecvDataSize(TPckg< TUint16 > &, TRequestStatus &)

TInt AwaitRecvDataSize(TPckg< TUint16 > &aDataSizePckg,
TRequestStatus &aReqStatus
)[pure virtual]

Waits for a datagram to be received, and discovers the size of buffer required to retrieve it.

This asynchronous method waits for a datagram to be received and will then complete allowing the client to discover how large a buffer is needed to retrieve the entire datagram that has been received. A later call to RecvFrom() with a buffer of sufficient size will then allow the client to retrieve the datagram fully.

Parameters

TPckg< TUint16 > & aDataSizePckgOn completion, the size of data received, in bytes
TRequestStatus & aReqStatusAsynchonrous status word, used to signal when a data size is known

CancelRecv()

voidCancelRecv()[pure virtual]

Cancels a previously asynchronous RecvFrom() or AwaitRecvDataSize() request.

If a datagram arrives at the local host, it will be discarded.

Connect(Wap::TBearer, Wap::TPort, TInetAddr)

TInt Connect(Wap::TBeareraBearer,
Wap::TPortaPort,
TInetAddraInetAddr
)[pure virtual]

Connects to the WAP stack, opening an endpoint that can be used to listen for subsequent incoming datagrams.

This overload of Connect() allows an IP address associated with a network interface to be specified. In multihomed systems, this can be used to specify the network interface to which the endpoint should be bound.

All CWapBoundDatagramService implementations must automatically close this endpoint upon destruction.

Parameters

Wap::TBearer aBearerThe bearer to listen on. Use EAll to specify all bearers.
Wap::TPort aPortThe port to listen on. If set to 0, a local port will be chosen for the client's first SendTo()
TInetAddr aInetAddrThe IP address of the network interface that should be used in a multihomed system.

Connect(Wap::TBearer, Wap::TPort)

TInt Connect(Wap::TBeareraBearer,
Wap::TPortaPort
)[pure virtual]

Connects to the WAP stack, opening an endpoint that can be used to listen for subsequent incoming datagrams.

All CWapBoundDatagramService implementations must automatically close this endpoint upon destruction.

Parameters

Wap::TBearer aBearerThe bearer to listen on. Use EAll to specify all bearers.
Wap::TPort aPortThe port to listen on. If set to 0, a local port will be chosen for the client's first SendTo()

ConstructL()

IMPORT_C voidConstructL()[protected]

GetBearer(Wap::TBearer &)

TInt GetBearer(Wap::TBearer &aBearer)[pure virtual]

Gets the bearer on which a received datagram arrived.

This is useful when EAll was specified as the bearer in Connect().

Parameters

Wap::TBearer & aBearerOn return, the bearer

GetDatagramSizes(TUint16 &, TUint16 &)

TInt GetDatagramSizes(TUint16 &aMaxSize,
TUint16 &aNominalSize
)[pure virtual]

Queries the WDP bearer for its maximum datagram size and its nominal datagram size.

The nominal size is the size within which a datagram won't have to be split into smaller individual messages and then re-assembled at the other end.

The function will fail for a stream connection.

Parameters

TUint16 & aMaxSizeOn return, the maximum datagram size
TUint16 & aNominalSizeOn return, the nominal datagram size

GetLocalAddress(HBufC8 *&)

TInt GetLocalAddress(HBufC8 *&aLocalHost)[pure virtual]

Gets the local address of this endpoint.

Parameters

HBufC8 *& aLocalHostOn return, the address of the local host. Clients must pass in a reference to a NULL HBufC8 pointer. The function allocates a new HBufC8 buffer to hold the address, and passes ownership of the buffer to the client.

GetLocalPort(Wap::TPort &)

TInt GetLocalPort(Wap::TPort &aPort)[pure virtual]

Gets the local port of this endpoint.

This is useful if the port was chosen automatically.

Parameters

Wap::TPort & aPortOn return, the port number

NewL()

IMPORT_C CWapBoundDatagramService *NewL()[static]

Bound WDP Allocates and creates a new CWapBoundDatagramService object.

leave
System wide error codes

NewL(const TUid &)

IMPORT_C CWapBoundDatagramService *NewL(const TUid &aImplementation)[static]

Allocates and creates a new CWapBoundDatagramService object.

leave
System wide error codes

Parameters

const TUid & aImplementation

RecvFrom(TDes8 &, Wap::TPort &, TDes8 &, TBool &, TRequestStatus &, TUint32)

TInt RecvFrom(TDes8 &aRemoteHost,
Wap::TPort &aRemotePort,
TDes8 &aBuffer,
TBool &aTruncated,
TRequestStatus &aReqStatus,
TUint32aTimeout
)[pure virtual]

Receives data on a bound port.

An asynchronous notification is sent to the client when data arrives.

Parameters

TDes8 & aRemoteHostOn completion, the bearer-dependent address of the remote host from which the data was received
Wap::TPort & aRemotePortOn completion, the port on the remote host from which the data was received
TDes8 & aBufferA client-allocated data buffer that on completion is filled with data received. Data that overflows the buffer is discarded.
TBool & aTruncatedOn completion, indicates whether the received datagram was truncated to fit in the client's supplied buffer
TRequestStatus & aReqStatusAsynchronous status word, used to notify the client that a datagram was received
TUint32 aTimeoutAn optional millisecond time-out which allows a timed read to be made. If no data is received within the timeout period, the request completes with KErrTimedOut. If a value of 0 is supplied, the timeout is infinite.

SendTo(const TDesC8 &, Wap::TPort, const TDesC8 &, Wap::TBearer)

TInt SendTo(const TDesC8 &aRemoteHost,
Wap::TPortaRemotePort,
const TDesC8 &aBuffer,
Wap::TBeareraBearer
)[pure virtual]

Sends data to a remote endpoint.

Parameters

const TDesC8 & aRemoteHostThe address of the remote host to which to send the data. The format of the address is bearer-specific.
Wap::TPort aRemotePortThe port on the remote host to which the data will be sent
const TDesC8 & aBufferThe data buffer to be sent
Wap::TBearer aBearerThe bearer to be used, if the bound connection was opened with EAll

Member Data Documentation

TUid iDtor_ID_Key

TUid iDtor_ID_Key[private]