epoc32/include/obexclient.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 
    17 
    18 /**
    19  @file
    20  @publishedAll
    21  @released
    22 */
    23 
    24 #ifndef __OBEXCLIENT_H
    25 #define __OBEXCLIENT_H
    26 
    27 #include <obextypes.h>
    28 #include <obex/internal/obextransportconstants.h>
    29 #include <obexbase.h>
    30 
    31 class CObexPacket;
    32 class MObexFinalPacketObserver;
    33 class CObexPacketSignaller;
    34 class CObexPacketTimer;
    35 class CObexErrorEngine;
    36 
    37 /**
    38 Client side functionality. Connection based.
    39 Supports ...
    40 - Opening IrDA TTP sockets for the OBEX session.
    41 - Opening an OBEX session over a connected socket
    42 - Standard OBEX (spec. version 1.2) operations.
    43  
    44 This class is not designed for user derivation.
    45 
    46 @publishedAll
    47 @released
    48 */
    49 NONSHARABLE_CLASS(CObexClient) : public CObex
    50 	{
    51 public:
    52 	IMPORT_C ~CObexClient();
    53 	IMPORT_C static CObexClient* NewL(TObexProtocolInfo& aObexProtocolInfoPtr);
    54 	IMPORT_C static CObexClient* NewL(TObexProtocolInfo& aObexProtocolInfoPtr, TObexProtocolPolicy& aObexProtocolPolicy);
    55 	IMPORT_C static CObexClient* NewL(TObexTransportInfo& aObexTransportInfo);
    56 	IMPORT_C void Connect(TRequestStatus& aStatus);
    57 	IMPORT_C void Connect(CObexBaseObject& aObject, TRequestStatus& aStatus);	
    58 	IMPORT_C void ConnectL(CObexBaseObject& aObject, const TDesC& aPassword, 
    59 													TRequestStatus& aStatus);
    60 	IMPORT_C void ConnectL(const TDesC& aPassword, TRequestStatus& aStatus);
    61 	IMPORT_C void Disconnect(TRequestStatus& aStatus);						
    62 	IMPORT_C void Put(CObexBaseObject& aObject, TRequestStatus& aStatus);
    63 	IMPORT_C void Get(CObexBaseObject& aObject, TRequestStatus& aStatus);		
    64 	IMPORT_C void SetPath(TSetPathInfo& aPathInfo, TRequestStatus& aStatus);
    65 	IMPORT_C void Abort();					
    66 	IMPORT_C void UserPasswordL( const TDesC& aPassword);
    67 	IMPORT_C const CObexHeaderSet& GetPutFinalResponseHeaders();
    68 	IMPORT_C void SetFinalPacketObserver(MObexFinalPacketObserver* aObserver);
    69 	IMPORT_C TObexResponse LastServerResponseCode() const;
    70 	IMPORT_C void SetCommandTimeOut(TTimeIntervalMicroSeconds32 aTimeOut);
    71 	IMPORT_C TAny* ExtensionInterface(TUid aUid);
    72 
    73 public:	// Called from CObexNotifyExtendClient
    74 	void SignalPacketProcessEvent(TObexPacketProcessEvent aEvent);
    75 	void TimeOutCompletion();
    76 	
    77 private:
    78 	CObexClient();
    79 	void ConstructL(TObexTransportInfo& aObexTransportInfo);
    80 	TBool AlreadyActive(TRequestStatus& aStatus);
    81 	void ClientCommandL(TOperation aOp, TAny* aParam, TRequestStatus& aStatus);
    82 	// Implementation of CObex Events
    83 	virtual void OnPacketReceive(CObexPacket& aPacket);
    84 	virtual void OnError(TInt aError);
    85 	virtual void OnTransportUp();
    86 	virtual void OnTransportDown();
    87 	void SetRequest(TRequestStatus& aStatus, TOperation aOperation);
    88 	void CompleteRequest(const TInt aCompletion);
    89 	TInt PrepareConnectPacket(CObexPacket& aPacket);	// Should be members of TConnectInfo
    90 	TInt ParseConnectPacket(CObexPacket& aPacket);	
    91 	void ResetConnectionID();
    92 	void SetConnectionID(TUint32 aConnectionID);
    93 	void EmptyHeaderSet();
    94 	void SendRequestPacket();
    95 	void SendRequestPacket(TObexOpcode aObexOpcode);
    96 
    97 private: 
    98 	TRequestStatus* iPendingRequest;
    99 	CObexBaseObject* iCurrentObject;
   100 	TUint32 iConnectionID; 
   101 	TBool iConnectionIdSet;
   102 	CObexHeaderSet* iHeaderSet;
   103 	CObexHeader* iHeader;
   104 	CObexPacketSignaller* iPacketProcessSignaller;
   105 	TObexResponse iLastReceivedResponseOpcode;
   106 	CObexErrorEngine* iErrorEngine;
   107 	TBool iIsLastErrorSet;
   108 	TTimeIntervalMicroSeconds32 iCmdTimeOutDuration;
   109 	CObexPacketTimer* iPacketTimer;
   110 	};
   111 
   112 #endif // __OBEXCLIENT_H