diff -r 000000000000 -r 29b1cd4cb562 bluetooth/btstack/sdp/sdpnetdb.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetooth/btstack/sdp/sdpnetdb.h Fri Jan 15 08:13:17 2010 +0200 @@ -0,0 +1,89 @@ +// Copyright (c) 2000-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 SDPNETDB_H +#define SDPNETDB_H + +#include +#include + +class CSdpClient; +class CSdpProtocol; +class TSdpState; + +/** + The net db provider access point. + This class forms the major interaction point with RNetDatabase classes +**/ +NONSHARABLE_CLASS(CSdpNetDbProvider) : public CNetDBProvdBase + { +friend class CSdpProtocol; +friend class CSdpClient; +public: + // Creation + static CSdpNetDbProvider* NewL(CSdpProtocol& aProtocol); + ~CSdpNetDbProvider(); + + // CNetDBProvdBase functions + void Query(TDes8& aBuffer); + void Add(TDes8& aBuffer); + void Remove(TDes8& aBuffer); + void CancelCurrentOperation(); + // End CNetDBProvdBase functions + + // Notifications from the sdp client + void ClientUp(); + void ClientDown(); + void QueryComplete(const TDesC8& aData); + + // Other functions + void Error(TInt aErrorCode); + //From CResolverProvdBase + TInt SecurityCheck(MProvdSecurityChecker *aSecurityChecker); +private: + // Creation + CSdpNetDbProvider(CSdpProtocol& aProtocol); + void ConstructL(); + + // Query Dispatch + void ConnectQuery(); + void ServiceQuery(); + void AttributeQuery(); + void EncodedQuery(); + void RetrieveResult(); + + TInt ReturnResult(const TDesC8& aData); + + // From CNetDBProvdBase + TInt CheckCapability(TUint32 aCapability, TUint aType); + TInt CheckCapabilityPerPolicy(const TUint32 aCapability, const TUint aPolicyIndex) const; + + +private: + //Data + TBTDevAddr iRemoteDev; + TDes8* iQueryBuffer; + HBufC8* iResultBuf; + + // Links + CSdpProtocol& iProtocol; + CSdpClient* iClient; + // So we can go on a Que in the client + TDblQueLink iLink; + //Mixin providing security checking, This is not an owned variable. + MProvdSecurityChecker* iSecurityChecker; + }; + +#endif