bluetooth/btstack/sdp/sdpnetdb.h
changeset 0 29b1cd4cb562
--- /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 <es_prot.h>
+#include <bttypes.h>
+
+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