--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/debuglogger/obex/inc/btservicesearcher.h Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,228 @@
+/*
+* Copyright (c) 2006 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 __BTSERVICESEARCHER_H__
+#define __BTSERVICESEARCHER_H__
+
+#include <e32base.h>
+#include <bttypes.h>
+#include <btextnotifiers.h>
+
+#include "SdpAttributeParser.h"
+#include "SdpAttributeNotifier.h"
+
+
+/*!
+ @class CBTServiceSearcher
+
+ @discussion Searches for a service on a remote machine
+ */
+
+class CBTServiceSearcher : public CBase,
+ public MSdpAgentNotifier,
+ public MSdpAttributeNotifier
+ {
+public:
+/*!
+ @function ~CBTServiceSearcher
+
+ @discussion Destroy the object and release all memory objects
+ */
+ ~CBTServiceSearcher();
+
+
+/*!
+ @function Cancel
+
+ @discussion Cancel any outstanding requests
+ */
+ void Cancel();
+
+/*!
+ @function SelectDeviceByDiscoveryL
+
+ @discussion Select a device
+ @param aObserverRequestStatus the observer that is to be notified when the device selection is complete
+ */
+ void SelectDeviceByDiscoveryL(TRequestStatus& aObserverRequestStatus);
+
+/*!
+ @function FindServiceL
+
+ @discussion Find a service on the specified device
+ @param aObserverRequestStatus the observer that is to be notified when the service search is complete
+ */
+ void FindServiceL(TRequestStatus& iObserverRequestStatus);
+
+/*!
+ @function BTDevAddr
+
+ @result the bluetooth device address
+ */
+ const TBTDevAddr& BTDevAddr();
+
+/*!
+ @function ResponseParams
+
+ @result Information about the device selected by the user
+ */
+ const TBTDeviceResponseParams& ResponseParams();
+
+protected:
+/*!
+ @function CBTServiceSearcher
+
+ @discussion Constructs this object
+ */
+ CBTServiceSearcher();
+
+/*!
+ @function Finished
+
+ @discussion The search has finished. Notify the observer that the process is complete.
+ */
+ virtual void Finished(TInt aError = KErrNone);
+
+/*!
+ @function HasFinishedSearching
+
+ @discussion Is the instance still wanting to search.
+ @result EFalse if the instance wants searching to continue.
+ */
+ virtual TBool HasFinishedSearching() const;
+
+/*!
+ @function HasFoundService
+
+ @result ETrue if a service has been found
+ */
+ TBool HasFoundService() const;
+
+protected: // abstract methods
+
+/*!
+ @function ProtocolList
+
+ @discussion The list of Protocols required by the service.
+ */
+ virtual const TSdpAttributeParser::TSdpAttributeList& ProtocolList() const = 0;
+
+/*!
+ @function ServiceClass
+
+ @discussion The service class to search for
+ @result the service class UUID
+ */
+ virtual const TUUID& ServiceClass() const = 0;
+
+/*!
+ @function FoundElementL
+
+ @discussion Read the data element
+ @param aKey a key that identifies the element
+ @param aValue the data element
+ */
+ virtual void FoundElementL(TInt aKey, CSdpAttrValue& aValue) = 0;
+
+public: // from MSdpAgentNotifier
+/*!
+ @function NextRecordRequestComplete
+
+ @discussion Process the result of the next record request
+ @param aError the error code
+ @param aHandle the handle of the service record
+ @param aTotalRecordsCount the total number of matching service records
+ */
+ void NextRecordRequestComplete(TInt aError, TSdpServRecordHandle aHandle, TInt aTotalRecordsCount);
+
+/*!
+ @function AttributeRequestResult
+
+ @discussion Process the next attribute requested
+ @param aHandle the handle of the service record
+ @param aAttrID the id of the attribute
+ @parma aAttrValue the value of the attribute
+ */
+ void AttributeRequestResult(TSdpServRecordHandle aHandle, TSdpAttributeID aAttrID, CSdpAttrValue* aAttrValue);
+
+/*!
+ @function AttributeRequestComplete
+
+ @discussion Process the arrtibute request completion
+ @param aHandle the handle of the service record
+ @param aError the error code
+ */
+ void AttributeRequestComplete(TSdpServRecordHandle aHandle, TInt aError);
+
+private:
+
+/*!
+ @function NextRecordRequestCompleteL
+
+ @discussion Process the result of the next record request
+ @param aError the error code
+ @param aHandle the handle of the service record
+ @param aTotalRecordsCount the total number of matching service records
+ */
+ void NextRecordRequestCompleteL(TInt aError, TSdpServRecordHandle aHandle, TInt aTotalRecordsCount);
+
+/*!
+ @function AttributeRequestResultL
+
+ @discussion Process the next attribute requested
+ @param aHandle the handle of the service record
+ @param aAttrID the id of the attribute
+ @parma aAttrValue the value of the attribute
+ */
+ void AttributeRequestResultL(TSdpServRecordHandle aHandle, TSdpAttributeID aAttrID, CSdpAttrValue* aAttrValue);
+
+/*!
+ @function AttributeRequestCompleteL
+
+ @discussion Process the arrtibute request completion
+ @param aHandle the handle of the service record
+ @param aError the error code
+ */
+ void AttributeRequestCompleteL(TSdpServRecordHandle, TInt aError);
+
+private:
+ /*! @var iStatusObserver pointer to the request status observer */
+ TRequestStatus* iStatusObserver;
+
+ /*! @var iIsDeviceSelectorConnected is the device selector connected ? */
+ TBool iIsDeviceSelectorConnected;
+
+ /*! @var iDeviceSelector a handle to the bluetooth device selector notifier */
+ RNotifier iDeviceSelector;
+
+ /*! @var iResponse the response of the device selection */
+ TBTDeviceResponseParamsPckg iResponse;
+
+ /*! @var iAgent a connetction to the SDP client */
+ CSdpAgent* iAgent;
+
+ /*! @var iSdpSearchPattern a search pattern */
+ CSdpSearchPattern* iSdpSearchPattern;
+
+ /*! @var iHasFoundService has the service been found ? */
+ TBool iHasFoundService;
+
+ };
+
+#endif // __BTSERVICESEARCHER_H__
+