bluetooth/btsdp/server/protocol/pduhandler.h
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetooth/btsdp/server/protocol/pduhandler.h	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,85 @@
+// 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 PDUHANDLER_H
+#define PDUHANDLER_H
+
+#include <e32std.h>
+#include <es_sock.h>
+#include "sdpconsts.h"
+#include "ServiceSearchVisitor.h"
+#include "ExtractorVisitor.h"
+
+// 4 byte offset, 4 byte full length, 2 byte CRC
+#define KSdpContinuationStateLength 10
+
+#define KContStateHeader 1
+
+#define KRecHandleOffset 0
+#define KRecHandleCountSize 2
+#define KAttributeCountOffset 4
+#define KRecAttribListOffset 6
+
+#define KRspTotalCountOffset 0
+#define KRspHandleCountSize 2
+#define KRspHandleCountOffset 2
+#define KRspAttrCountOffset 0
+#define KRspAttributeCountSize 2
+#define KRspAttributeCountOffset 0
+#define KRspAttributeListOffset 2
+#define KContContOff 0
+#define KContTotOff 4
+#define KContCrcOff 8
+
+#define KAttributeIdSize 3
+#define KAttrIdHeader 0x09
+
+#define KMaxThreeByteDESSize 0xffff
+#define KMaxTwoByteDESSize 0xff
+#define KTwoByteDESSize 2
+#define KThreeByteDESSize 3
+#define KFiveByteDESSize 5
+
+//class CSdpListener;
+class CSdpConnection;
+class TSdpPdu;
+
+NONSHARABLE_CLASS(CSdpPDUHandler)
+{
+public:
+	CSdpPDUHandler(){iDesSize=0;}
+	static CSdpSearchPattern* UUIDListLC(const TDesC8& aPdu, const TInt aNextSize, TInt& aLen, TInt& aRem, TInt& aCount);
+	static CSdpAttrIdMatchList* AttrListLC(const TDesC8& aPdu, TInt& aRem);
+	TBool ContinuationL(const TDesC8& aPdu, const TInt aLen, const TInt aRem);
+	void CompleteOPL(TDes8& aPdu, const TDesC8& aWritePdu, const TInt aMaxAttrCount);
+	TUint32 ContinuationOffset();
+	TUint32 FullLength();
+	TUint16 ReqCRC();
+	static TInt DesSize(TUint aDataSize);
+private:
+	TUint iDesSize;
+	TUint iRespSize;	// continuation
+	TUint32 iContinuation;
+	TUint32 iLength;
+	TUint16 iCRC;	// I wish
+// epocsvr.cpp
+//  line 703 update database size when record added.
+// lines 730, update database when record deleted (this code is wrong, anyway)
+//	lines 781, 831, update database when attribute amended, deleted.
+//  
+};
+
+#endif