Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]

#include <wapmessage.h>
Link against: wapmsgcli.lib

Class CWapFullySpecDatagramService

class CWapFullySpecDatagramService : public CBase;

Description

Sends and receives datagrams over WDP using a specified local port and a single, named remote host.

The class is an ECom plug-in interface. Clients use CWapFullySpecDatagramService::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.

Derivation

Members

Defined in CWapFullySpecDatagramService:

Inherited from CBase:


Construction and destruction


NewL()

IMPORT_C static CWapFullySpecDatagramService* NewL();

Description

Allocates and creates a new CWapFullySpecDatagramService object.

Return value

CWapFullySpecDatagramService *

A new CWapFullySpecDatagramService object.

Leave codes

System

wide error codes.


NewL(const TUid &)

IMPORT_C static CWapFullySpecDatagramService* NewL(const TUid &aImplementation);

Description

Allocates and creates a new CWapFullySpecDatagramService object.

Parameters

const TUid &aImplementation

Return value

CWapFullySpecDatagramService *

A new CWapFullySpecDatagramService object.

Leave codes

System

wide error codes.


~CWapFullySpecDatagramService()

IMPORT_C virtual ~CWapFullySpecDatagramService();

Description

Destructor


CWapFullySpecDatagramService()

protected: IMPORT_C CWapFullySpecDatagramService();

Description


ConstructL()

protected: IMPORT_C void ConstructL();

Description

[Top]


Member functions


Connect(const TDesC8 &,Wap::TPort,Wap::TBearer,TInetAddr)

virtual TInt Connect(const TDesC8 &aRemoteHost, Wap::TPort aRemotePort, Wap::TBearer aBearer, TInetAddr aInetAddr)=0;

Description

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

This overload of CWapFullySpecDatagramService::Connect(const TDesC8 &,Wap::TPort,Wap::TBearer,TInetAddr) 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 CWapFullySpecDatagramService implementations must automatically close this endpoint upon destruction.

Parameters

const TDesC8 &aRemoteHost

The bearer-dependent address of the remote host with which the data will be exchanged

Wap::TPort aRemotePort

The port on the remote host to which data will be sent

Wap::TBearer aBearer

The bearer to use. EAll cannot be used.

TInetAddr aInetAddr

The IP address of the network interface that should be used in a multihomed system.

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


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

virtual TInt Connect(const TDesC8 &aRemoteHost, Wap::TPort aRemotePort, Wap::TBearer aBearer)=0;

Description

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

All CWapFullySpecDatagramService implementations must automatically close this endpoint upon destruction.

Parameters

const TDesC8 &aRemoteHost

The bearer-dependent address of the remote host with which the data will be exchanged

Wap::TPort aRemotePort

The port on the remote host to which data will be sent

Wap::TBearer aBearer

The bearer to use. EAll cannot be used.

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


Send(const TDesC8 &)

virtual TInt Send(const TDesC8 &aBuffer)=0;

Description

Sends data on a fully-specified connection.

Parameters

const TDesC8 &aBuffer

The data buffer to be written over the connection

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


AwaitRecvDataSize(TPckg< TUint16 > &,TRequestStatus &)

virtual TInt AwaitRecvDataSize(TPckg< TUint16 > &aDataSizePckg, TRequestStatus &aReqStatus)=0;

Description

Waits for a datagram to be received, and discover how large a buffer is required to retrieve it.

This asynchronous request 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 CWapFullySpecDatagramService::Recv(TDes8 &,TBool &,TRequestStatus &,TUint32) with a buffer of sufficent size will then allow the client to retrieve the datagram fully.

Parameters

TPckg< TUint16 > &aDataSizePckg

On completion, the size of data received, in bytes

TRequestStatus &aReqStatus

Asynchonrous status word, used to signal when a data size is known

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


Recv(TDes8 &,TBool &,TRequestStatus &,TUint32)

virtual TInt Recv(TDes8 &aBuffer, TBool &aTruncated, TRequestStatus &aReqStatus, TUint32 aTimeout)=0;

Description

Receives data on a bound port.

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

Parameters

TDes8 &aBuffer

A client-allocated data buffer that, on completion, is filled with data received. Data that overflows the buffer is discarded.

TBool &aTruncated

On completion, indicates whether the received datagram was truncated to fit in the client's supplied buffer

TRequestStatus &aReqStatus

Asynchronous status word, used to notify the client that a datagram was received

TUint32 aTimeout

An 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.

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


CancelRecv()

virtual void CancelRecv()=0;

Description

Cancels a previously asynchronous CWapFullySpecDatagramService::Recv(TDes8 &,TBool &,TRequestStatus &,TUint32) or CWapFullySpecDatagramService::AwaitRecvDataSize(TPckg< TUint16 > &,TRequestStatus &) request.

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


GetLocalPort(Wap::TPort &)

virtual TInt GetLocalPort(Wap::TPort &aPort)=0;

Description

Gets the local port of this endpoint.

This is useful if the port was chosen automatically.

Parameters

Wap::TPort &aPort

On return, the port number

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


GetLocalAddress(HBufC8 *&)

virtual TInt GetLocalAddress(HBufC8 *&aLocalHost)=0;

Description

Gets the local address of this endpoint.

Parameters

HBufC8 *&aLocalHost

On 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.

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.


GetDatagramSizes(TUint16 &,TUint16 &)

virtual TInt GetDatagramSizes(TUint16 &aMaxSize, TUint16 &aNominalSize)=0;

Description

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.

Parameters

TUint16 &aMaxSize

On return, the maximum datagram size

TUint16 &aNominalSize

On return, the nominal datagram size

Return value

TInt

KErrNone on successful completion, or one of the system error codes on failure.