--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/ObexClassController/test/inc/simpleObexClient.h Tue Feb 02 02:02:59 2010 +0200
@@ -0,0 +1,143 @@
+/*
+* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+#ifndef SIMPLEOBEXCLIENT_H
+#define SIMPLEOBEXCLIENT_H
+
+
+#include <e32base.h>
+#include <e32cons.h>
+#include <obex.h>
+#include <btsdp.h>
+#include "simpleObexApp.h"
+
+
+
+class CRFCOMMServiceFinder;
+
+
+/**
+ * MRFCOMMServiceSeeker is a mixin class that contains a virtual function,
+ * SearchResult, that is overridden by the SearchResult funtion in the
+ * CObexClientHandler class.
+ *
+ */
+class MRFCOMMServiceSeeker
+ {
+ public:
+ virtual void SearchResult(TInt aError, TUint8 aPort)=0; // user implemented
+ };
+
+
+
+/**
+ * CObexClientHandler is a wrapper class that is responsible for dealing
+ * with an OBEX client. It implements MRFCOMMServiceSeeker to deal with
+ * Bluetooth searches on other OBEX devices.
+ *
+ */
+class CObexClientHandler : public CActive, public MRFCOMMServiceSeeker
+ {
+ public:
+ static CObexClientHandler* NewL(CActiveConsole* aParent, TTransport aTransport);
+ ~CObexClientHandler();
+
+ void SetMode(TUint mode);
+ void Connect();
+ void Disconnect();
+ void GetByNameL();
+ void Put(TDes& filename);
+ void SetName(TDes& aName);
+ void SearchResult(TInt aError, TUint8 aPort);
+
+ void ConnectWithAuthenticationL();
+
+ private:
+ void ConstructL(TTransport aTransport);
+ CObexClientHandler(CActiveConsole* aParent);
+ void RunL ();
+ void DoCancel ();
+ TInt SetUpObjectFromFile (TDes& filename);
+ void DisplayObjectInformation();
+
+ public:
+ TBuf<64> iObexName;
+ TBuf<64> iFilename1;
+ TBuf<64> iFilename2;
+ TBuf<64> iFilename3;
+ TBuf<32> iSessionPath;
+ TBuf<16> iChallengePassword;
+ TBuf<16> iResponsePassword;
+ TBuf<32> iGetType;
+ private:
+ enum TSendState
+ {
+ EIdle,
+ EConnecting,
+ EConnected,
+ EPutting,
+ EGetting,
+ EDisconnecting
+ };
+
+ CActiveConsole* iParent;
+ CObexClient* iClient;
+ CObexFileObject* iFileObject;
+ CObexBufObject* iObject;
+ CBufFlat* iObjectBuffer;
+ TSendState iState;
+ CObexNullObject* iTargetHeaderObject;
+ CRFCOMMServiceFinder* iSdpServiceFinder;
+ TBTDevAddr iDevAddr;
+
+ };
+
+
+/**
+ * CRFCOMMServiceFinder is the clas that is responsible for searching the SDP
+ * records of a specified device (by address) to see if OBEX FTP is supported
+ *
+ */
+class CRFCOMMServiceFinder : public CBase, public MSdpAgentNotifier
+ {
+ public:
+ static CRFCOMMServiceFinder* NewL( const TUUID& aServiceClass,const TBTDevAddr& aDevAddr,MRFCOMMServiceSeeker& aSeeker);
+ ~CRFCOMMServiceFinder();
+
+ void FindPortL(); //Starts the search
+
+
+ // MSdpAgentNotifier functions
+ void NextRecordRequestComplete(TInt aError, TSdpServRecordHandle aHandle, TInt aTotalRecordsCount);
+ void AttributeRequestResult(TSdpServRecordHandle,TSdpAttributeID,CSdpAttrValue*) {User::Panic(_L("RFCOMMSEEK"), 0);} // Not using this API form
+ void AttributeRequestComplete(TSdpServRecordHandle aHandle, TInt aError);
+
+ private:
+ CRFCOMMServiceFinder(MRFCOMMServiceSeeker& aSeeker);
+ void ConstructL(const TBTDevAddr& aDevAddr, const TUUID& aServiceClass);
+
+ private:
+ CSdpAgent* iAgent;
+ CSdpSearchPattern* iPattern;
+ TBool iFoundRFCOMMUUID;
+ TUint8 iPort;
+ MRFCOMMServiceSeeker& iSeeker;//initialised from aSeeker in the constructor
+ CActiveConsole* iParent;
+ };
+
+#endif // SIMPLEOBEXCLIENT_H
\ No newline at end of file