diff -r 000000000000 -r c9bc50fca66e usbmgmt/usbmgrtest/ObexClassController/test/inc/simpleObexClient.h --- /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 +#include +#include +#include +#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