diff -r 000000000000 -r 29b1cd4cb562 bluetooth/btsdp/server/protocol/pduhandler.h --- /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 +#include +#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