diff -r 000000000000 -r 29b1cd4cb562 bluetooth/btstack/avctp/avctppacket.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetooth/btstack/avctp/avctppacket.inl Fri Jan 15 08:13:17 2010 +0200 @@ -0,0 +1,162 @@ +// Copyright (c) 2005-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: +// + +/** + @file + @internalComponent +*/ + +#include "avctpOutboundQ.h" +#include "avctpcommon.h" + +using namespace SymbianAvctp; + +// +// CAvctpFragStartPacket utility functions +// + +inline TAvctpHeaderInfo::TAvctpHeaderInfo() + : iTransactionLabel(SymbianAvctp::KMaxTransactionLabel), + iPktType(SymbianAvctp::EUnknownPkt), + iMsgType(SymbianAvctp::EUndefined) + { + } + +inline TAvctpHeaderInfo::TAvctpHeaderInfo(SymbianAvctp::TTransactionLabel aTransactionLabel, + SymbianAvctp::TPacketType aPktType, + SymbianAvctp::TMessageType aMsgType) + : iTransactionLabel(aTransactionLabel), + iPktType(aPktType), + iMsgType(aMsgType) + { + } + +inline SymbianAvctp::TPduHeaderLength TAvctpHeaderInfo::HeaderLength() const + { + return ConvertPacketTypeToHeaderLength(iPktType); + } + + +inline TAvctpNormalHeaderInfo::TAvctpNormalHeaderInfo() + : TAvctpHeaderInfo(), + iHasValidPid(EFalse), + iPid(0) + { + } + +inline TAvctpNormalHeaderInfo::TAvctpNormalHeaderInfo( + SymbianAvctp::TTransactionLabel aTransactionLabel, + SymbianAvctp::TPacketType aPktType, + SymbianAvctp::TMessageType aMsgType, + TBool aHasValidPid, + SymbianAvctp::TPid aPid) + : TAvctpHeaderInfo(aTransactionLabel, aPktType, aMsgType), + iHasValidPid(aHasValidPid), + iPid(aPid) + { + } + +inline TAvctpStartHeaderInfo::TAvctpStartHeaderInfo() + : TAvctpNormalHeaderInfo(), + iFragmentsInSdu(0) + { + } + +inline TAvctpStartHeaderInfo::TAvctpStartHeaderInfo( + SymbianAvctp::TTransactionLabel aTransactionLabel, + SymbianAvctp::TPacketType aPktType, + SymbianAvctp::TMessageType aMsgType, + TBool aHasValidPid, + SymbianAvctp::TPid aPid, + TUint aFragmentsInSdu) + : TAvctpNormalHeaderInfo(aTransactionLabel, aPktType, aMsgType, aHasValidPid, aPid), + iFragmentsInSdu(aFragmentsInSdu) + { + } + +// +// Outgoing Sdu + +inline HAvctpOutgoingSdu::HAvctpOutgoingSdu( + const TAvctpNormalHeaderInfo& aHeaderInfo, + const TBTDevAddr& aAddr) + : iHeaderInfo(aHeaderInfo), + iAddr(aAddr), + iOutboundQ(NULL), + iChannel(KAvctpPrimaryChannel) + { + } + +inline const TBTDevAddr& HAvctpOutgoingSdu::BTAddr() const + { + return iAddr; + } + +inline TAvctpNormalHeaderInfo& HAvctpOutgoingSdu::HeaderInfo() + { + return iHeaderInfo; + } + +inline RMBufChain& HAvctpOutgoingSdu::Data() + { + return iSduData; + } + +inline void HAvctpOutgoingSdu::AddToQueue(TAvctpOutboundQ* aOutboundQ) + { + // This needs to be local as it is in a header file + #ifdef __FLOG_ACTIVE + _LIT8(KLogComponent, LOG_COMPONENT_AVCTP); + #endif + + #ifdef _DEBUG + PANICCATEGORY("pktinl"); + #endif + +// We shouldn't already be on a Q and we need to be given a valid Q + ASSERT_DEBUG(iOutboundQ == NULL && aOutboundQ != NULL); + iOutboundQ = aOutboundQ; + } + +// +// Incoming Sdu + +inline HAvctpIncomingSdu::HAvctpIncomingSdu(const TBTDevAddr& aAddr, + RMBufChain& aSduData) + : iAddr(aAddr) + { + iSduData.Assign(aSduData); + } + +inline const TBTDevAddr& HAvctpIncomingSdu::BTAddr() const + { + return iAddr; + } + +inline TInt HAvctpOutgoingSdu::Channel() const + { + return iChannel; + } + +inline const RMBufChain& HAvctpIncomingSdu::Data() const + { + return iSduData; + } + +inline HAvctpIncomingSdu::~HAvctpIncomingSdu() + { + iSduData.Free(); + iQueLink.Deque(); + }