CObexClient Class Reference

class CObexClient : public CObex
Client side functionality. Connection based. Supports ...
  • Opening IrDA TTP sockets for the OBEX session.

  • Opening an OBEX session over a connected socket

  • Standard OBEX (spec. version 1.2) operations.

This class is not designed for user derivation.

Inherits from

Public Member Functions
~CObexClient ()
IMPORT_C void Abort ()
IMPORT_C void Connect ( TRequestStatus &)
IMPORT_C void Connect ( CObexBaseObject &, TRequestStatus &)
IMPORT_C void ConnectL ( CObexBaseObject &, const TDesC &, TRequestStatus &)
IMPORT_C void ConnectL (const TDesC &, TRequestStatus &)
IMPORT_C void Disconnect ( TRequestStatus &)
IMPORT_C TAny * ExtensionInterface ( TUid )
IMPORT_C void Get ( CObexBaseObject &, TRequestStatus &)
IMPORT_C const CObexHeaderSet & GetPutFinalResponseHeaders ()
IMPORT_C TObexResponse LastServerResponseCode ()
IMPORT_C CObexClient * NewL ( TObexProtocolInfo &)
IMPORT_C CObexClient * NewL ( TObexProtocolInfo &, TObexProtocolPolicy &)
IMPORT_C CObexClient * NewL ( TObexTransportInfo &)
IMPORT_C void Put ( CObexBaseObject &, TRequestStatus &)
IMPORT_C void SetCommandTimeOut ( TTimeIntervalMicroSeconds32 )
IMPORT_C void SetFinalPacketObserver ( MObexFinalPacketObserver *)
IMPORT_C void SetPath ( TSetPathInfo &, TRequestStatus &)
void SignalPacketProcessEvent ( TInt )
void TimeOutCompletion ()
IMPORT_C void UserPasswordL (const TDesC &)
Private Member Functions
CObexClient ()
TBool AlreadyActive ( TRequestStatus &)
void ClientCommandL ( TOperation , TAny *, TRequestStatus &)
void CompleteRequest (const TInt )
void ConstructL ( TObexTransportInfo &)
void EmptyHeaderSet ()
void OnError ( TInt )
void OnPacketReceive ( CObexPacket &)
void OnTransportDown ()
void OnTransportUp ()
TInt ParseConnectPacket ( CObexPacket &)
TInt PrepareConnectPacket ( CObexPacket &)
void ResetConnectionID ()
void SendRequestPacket ()
void SendRequestPacket ( TObexOpcode )
void SetConnectionID ( TUint32 )
void SetRequest ( TRequestStatus &, TOperation )
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()
CObex::CObex()
CObex::CancelObexConnection()
CObex::ConnectState()const
CObex::ControlledTransportDown()
CObex::Error(TInt)
CObex::ForcedTransportDown()
CObex::GenerateChallenge(CObexPacket &)
CObex::GetConnectState()const
CObex::IsAuthenticating()const
CObex::IsConnected()const
CObex::IsStrictPeer()const
CObex::LocalInfo()const
CObex::NotifyError(TInt)
CObex::NotifyProcess(CObexPacket &)
CObex::NotifyTransportDown(TBool)
CObex::NotifyTransportUp()
CObex::PrepareChallResponseL(const TDesC &)
CObex::Process(CObexPacket &)
CObex::ProcessChallResponseL(const TObexInternalHeader &)
CObex::ProcessChallengeL(const TObexInternalHeader &)
CObex::RemoteAddr(TSockAddr &)
CObex::RemoteInfo()const
CObex::RemoteInfoCleanup()
CObex::SetCallBack(MObexAuthChallengeHandler &)
CObex::SetConnectState(TConnectState)
CObex::SetLocalWho(const TDesC8 &)
CObex::SuppressAuthenticationHeaderElements(TObexSuppressedAuthElements)
CObex::TransportDown(TBool)
CObex::TransportUp()
CObex::~CObex()
Inherited Enumerations
CObex:TConnectState
CObex:TObexSuppressedAuthElements
CObex:TOperation
Private Attributes
TTimeIntervalMicroSeconds32 iCmdTimeOutDuration
TUint32 iConnectionID
TBool iConnectionIdSet
CObexBaseObject * iCurrentObject
CObexErrorEngine * iErrorEngine
CObexHeader * iHeader
CObexHeaderSet * iHeaderSet
TBool iIsLastErrorSet
TObexResponse iLastReceivedResponseOpcode
CObexPacketSignaller * iPacketProcessSignaller
CObexPacketTimer * iPacketTimer
TRequestStatus * iPendingRequest
Inherited Attributes
CObex::iAuthEngine
CObex::iCallBack
CObex::iChallPassword
CObex::iChallenge
CObex::iConnectState
CObex::iCurrentOperation
CObex::iIncomingChallResp
CObex::iIncomingNonce
CObex::iIncomingRequestDigest
CObex::iLocalInfo
CObex::iNotifyHandler
CObex::iOutgoingChallResp
CObex::iOutgoingNonce
CObex::iRemoteInfo
CObex::iRemoteRealm
CObex::iRemoteUID
CObex::iReserved
CObex::iRespPassword
CObex::iRxChallenge
CObex::iSuppressedObexAuthElements
CObex::iTransportController
CObex::iUserIDRequested

Constructor & Destructor Documentation

CObexClient()

CObexClient ( ) [private]

~CObexClient()

IMPORT_C ~CObexClient ( )

Destructor.

Member Functions Documentation

Abort()

IMPORT_C void Abort ( )

OBEX ABORT operation.

The function sends the OBEX abort command to the remote machine if a multi-packet operation (i.e. PUT or GET) is in progress. An operation in progress will complete with KErrAbort.

AlreadyActive(TRequestStatus &)

TBool AlreadyActive ( TRequestStatus & aStatus ) [private]

Parameters

TRequestStatus & aStatus

ClientCommandL(TOperation, TAny *, TRequestStatus &)

void ClientCommandL ( TOperation aOp,
TAny * aParam,
TRequestStatus & aStatus
) [private]

Parameters

TOperation aOp
TAny * aParam
TRequestStatus & aStatus

CompleteRequest(const TInt)

void CompleteRequest ( const TInt aCompletion ) [private]

Parameters

const TInt aCompletion

Connect(TRequestStatus &)

IMPORT_C void Connect ( TRequestStatus & aStatus )

OBEX CONNECT operation to any available remote machine.

Parameters

TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone if it was successful, or a system-wide error code

Connect(CObexBaseObject &, TRequestStatus &)

IMPORT_C void Connect ( CObexBaseObject & aObject,
TRequestStatus & aStatus
)

OBEX CONNECT operation to any available remote machine, specifying an object to pass.

Parameters

CObexBaseObject & aObject OBEX object to pass to the remote machine
TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone if it was successful, or a system-wide error code

ConnectL(CObexBaseObject &, const TDesC &, TRequestStatus &)

IMPORT_C void ConnectL ( CObexBaseObject & aObject,
const TDesC & aPassword,
TRequestStatus & aStatus
)

OBEX CONNECT operation to any available remote machine, specifying an object to pass and a password.

Parameters

CObexBaseObject & aObject OBEX object to pass to the remote machine
const TDesC & aPassword Password to access remote machine
TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone if it was successful, or a system-wide error code

ConnectL(const TDesC &, TRequestStatus &)

IMPORT_C void ConnectL ( const TDesC & aPassword,
TRequestStatus & aStatus
)

OBEX CONNECT operation to any available remote machine, specifying a password.

Parameters

const TDesC & aPassword Password to access remote machine
TRequestStatus & aStatus On completion, KErrNone if it was successful, or a system-wide error code

ConstructL(TObexTransportInfo &)

void ConstructL ( TObexTransportInfo & aObexTransportInfo ) [private, virtual]

Parameters

TObexTransportInfo & aObexTransportInfo

Disconnect(TRequestStatus &)

IMPORT_C void Disconnect ( TRequestStatus & aStatus )

OBEX DISCONNECT operation.

This terminates the OBEX connection, and closes the transport on receiving any response from the server.

Parameters

TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone on normal disconnection, or KErrDisconnected if the server dropped the transport before sending an OBEX response (which is valid behaviour).

EmptyHeaderSet()

void EmptyHeaderSet ( ) [private]

ExtensionInterface(TUid)

IMPORT_C TAny * ExtensionInterface ( TUid aUid )

Provides additional interfaces for CObexClient .

Parameters

TUid aUid The UID of the interface that is required.

Get(CObexBaseObject &, TRequestStatus &)

IMPORT_C void Get ( CObexBaseObject & aObject,
TRequestStatus & aStatus
)

OBEX GET operation.

The caller specifies in aObject the headers to send to the server to specify the object to get: normally just a name is expected. If the server can serve the request, the object it returns will be loaded into aObject on completion. All headers returned by the server that are also allowed by the object s header mask will be loaded into the relevant attributes of aObject. Any object body is stored according to the implementation type of the CObexBaseObject passed.

Parameters

CObexBaseObject & aObject OBEX object to get; on completion, the retrieved object
TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone if the server passed back an OBEX object, or the appropriate file error if the data file could not be opened

GetPutFinalResponseHeaders()

IMPORT_C const CObexHeaderSet & GetPutFinalResponseHeaders ( )

This function can be called following the successful completion of a Put, and will return a reference to a CObexHeaderSet containing all the headers that were contained in the final Put response packet returned from the peer Obex server.

The headers in the header set will be deleted by any subsequent call to CObexClient functions that trigger Obex commands (ie. Connect, Disconnect, Put, Get, SetPath).

The reference should not be retained beyond the end of the lifetime of the CObexClient object.

LastServerResponseCode()

IMPORT_C TObexResponse LastServerResponseCode ( ) const

Get last server response code This method returns the last received OBEX response code. The method must not be called prior to a response notification being received by the client application. If the method is called a panic will be raised.

panic
ENoResponseCodeToReturn Panics if the method is called prior to a response being received from the OBEX server.

NewL(TObexProtocolInfo &)

IMPORT_C CObexClient * NewL ( TObexProtocolInfo & aObexProtocolInfoPtr ) [static]

Allocates and constructs a new OBEX client object.

The received protocol information object, aObexProtocolInfoPtr, specifies the transport protocol to use: For the standard transports the following are used, TObexIrProtocolInfo for IrDA, TObexBluetoothProtocolInfo for Bluetooth, TObexUsbProtocolInfo for USB.

Parameters

TObexProtocolInfo & aObexProtocolInfoPtr Protocol information object describing the transport to use

NewL(TObexProtocolInfo &, TObexProtocolPolicy &)

IMPORT_C CObexClient * NewL ( TObexProtocolInfo & aObexProtocolInfoPtr,
TObexProtocolPolicy & aObexProtocolPolicy
) [static]

Allocates and constructs a new OBEX client object with packet sizing information.

The received protocol information object, aObexProtocolInfoPtr, specifies the transport protocol to use: For the standard transports the following are used, TObexIrProtocolInfo for IrDA, TObexBluetoothProtocolInfo for Bluetooth, TObexUsbProtocolInfo for USB.

The aObexProtocolPolicy parameter specifies the packet sizing policy for this OBEX object.

Parameters

TObexProtocolInfo & aObexProtocolInfoPtr Protocol information object describing the transport to use
TObexProtocolPolicy & aObexProtocolPolicy Protocol policy object specifying the packet sizes to use

NewL(TObexTransportInfo &)

IMPORT_C CObexClient * NewL ( TObexTransportInfo & aObexTransportInfo ) [static]

Allocates and constructs a new OBEX client object with packet sizing information.

The received transport information object, aObexTransportInfo, specifies the transport protocol packet sizes to use: For the standard transports the following are used, TObexIrProtocolInfo for IrDA, TObexBluetoothProtocolInfo for Bluetooth, TObexUsbProtocolInfo for USB.

capability
WriteDeviceData If the TObexIrV3TransportInfo is passed as the argument and the associated name is valid.

Parameters

TObexTransportInfo & aObexTransportInfo Transport information object describing the transport and packet sizes to use

OnError(TInt)

void OnError ( TInt aError ) [private, virtual]

Parameters

TInt aError

OnPacketReceive(CObexPacket &)

void OnPacketReceive ( CObexPacket & aPacket ) [private, virtual]

Parameters

CObexPacket & aPacket

OnTransportDown()

void OnTransportDown ( ) [private, virtual]

OnTransportUp()

void OnTransportUp ( ) [private, virtual]

ParseConnectPacket(CObexPacket &)

TInt ParseConnectPacket ( CObexPacket & aPacket ) [private, virtual]

Parameters

CObexPacket & aPacket

PrepareConnectPacket(CObexPacket &)

TInt PrepareConnectPacket ( CObexPacket & aPacket ) [private]

Parameters

CObexPacket & aPacket

Put(CObexBaseObject &, TRequestStatus &)

IMPORT_C void Put ( CObexBaseObject & aObject,
TRequestStatus & aStatus
)

OBEX PUT operation.

Any valid header that is also present in aObject s header mask will be sent to the server, along with the object body specified by the implementation of aObject.

Parameters

CObexBaseObject & aObject OBEX object to put
TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone if the server accepted the object and received it fully, or the appropriate file error if the data file could not be opened

ResetConnectionID()

void ResetConnectionID ( ) [private]

SendRequestPacket()

void SendRequestPacket ( ) [private]

SendRequestPacket(TObexOpcode)

void SendRequestPacket ( TObexOpcode aObexOpcode ) [private]

Parameters

TObexOpcode aObexOpcode

SetCommandTimeOut(TTimeIntervalMicroSeconds32)

IMPORT_C void SetCommandTimeOut ( TTimeIntervalMicroSeconds32 aTimeOut )

Sets the Command Idle Time-out.

This function sets the timer period to be observed during the progress of all OBEX commands. If the OBEX server does not respond within the set period the current OBEX command will be completed with an error of KErrIrObexRespTimedOut and the transport will be disconnected.

Setting a time-out value of 0, all OBEX commands will be allowed to continue indefinitely.

Parameters

TTimeIntervalMicroSeconds32 aTimeOut The time-out period in Microseconds.

SetConnectionID(TUint32)

void SetConnectionID ( TUint32 aConnectionID ) [private]

Parameters

TUint32 aConnectionID

SetFinalPacketObserver(MObexFinalPacketObserver *)

IMPORT_C void SetFinalPacketObserver ( MObexFinalPacketObserver * aObserver )

Sets a final packet observer.

This replaces any previous observer. The observer will receive a callback when a final packet for a put or get request begins to be sent and another when the send completes. Although the start and finish callbacks are guaranteed to be in order, no guarantees are made about the ordering with respect to the completion of the put or get request.

This does not transfer ownership.

Parameters

MObexFinalPacketObserver * aObserver The observer to receive packet process events. This may be NULL.

SetPath(TSetPathInfo &, TRequestStatus &)

IMPORT_C void SetPath ( TSetPathInfo & aPathInfo,
TRequestStatus & aStatus
)

OBEX SETPATH operation.

This changes the remote device's current path.

Parameters

TSetPathInfo & aPathInfo Information to send in the SETPATH command. If you do not which to send a name, make sure CObex::TSetPathInfo::iNamePresent is set to false.
TRequestStatus & aStatus Asynchronous status word. On completion, KErrNone if successful, or a system-wide error code

SetRequest(TRequestStatus &, TOperation)

void SetRequest ( TRequestStatus & aStatus,
TOperation aOperation
) [private]

Parameters

TRequestStatus & aStatus
TOperation aOperation

SignalPacketProcessEvent(TInt)

void SignalPacketProcessEvent ( TInt aEvent )

Signals an event has ocurred.

Parameters

TInt aEvent The event that has ocurred (TObexPacketProcessEvent)

TimeOutCompletion()

void TimeOutCompletion ( )

UserPasswordL(const TDesC &)

IMPORT_C void UserPasswordL ( const TDesC & aPassword ) [virtual]

A call back from the the service with the password required for use with generating the challenge response.

leave
KErrNotReady if this function is not called from a MObexAuthChallengeHandler::GetUserPasswordL callback.

Parameters

const TDesC & aPassword Password

Member Data Documentation

TTimeIntervalMicroSeconds32 iCmdTimeOutDuration

TTimeIntervalMicroSeconds32 iCmdTimeOutDuration [private]

TUint32 iConnectionID

TUint32 iConnectionID [private]

TBool iConnectionIdSet

TBool iConnectionIdSet [private]

CObexBaseObject * iCurrentObject

CObexBaseObject * iCurrentObject [private]

CObexErrorEngine * iErrorEngine

CObexErrorEngine * iErrorEngine [private]

CObexHeader * iHeader

CObexHeader * iHeader [private]

CObexHeaderSet * iHeaderSet

CObexHeaderSet * iHeaderSet [private]

TBool iIsLastErrorSet

TBool iIsLastErrorSet [private]

TObexResponse iLastReceivedResponseOpcode

TObexResponse iLastReceivedResponseOpcode [private]

CObexPacketSignaller * iPacketProcessSignaller

CObexPacketSignaller * iPacketProcessSignaller [private]

CObexPacketTimer * iPacketTimer

CObexPacketTimer * iPacketTimer [private]

TRequestStatus * iPendingRequest

TRequestStatus * iPendingRequest [private]