williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: */ williamr@2: williamr@2: inline TBool RPacketContext::TPacketFilterV3::IsPresent(TPacketFilterDataBitmapPos aDataMemberBitmapPos) williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Checks if the bitmap of a certain attribute is set or not. williamr@2: williamr@2: @param aDataMemberBitmapPos Bitmap of an attribute. williamr@2: williamr@2: */ williamr@2: { williamr@2: return aDataMemberBitmapPos & iPresentDataBitmap; williamr@2: } williamr@2: williamr@2: inline void RPacketContext::TPacketFilterV3::Reset(TPacketFilterDataBitmapPos aDataMemberBitmapPos) williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Resets the iPresentDataBitmap of an attribute accordign to its Bitmap value. williamr@2: williamr@2: @param aDataMemberBitmapPos Bitmap of an attribute. williamr@2: williamr@2: */ williamr@2: { williamr@2: iPresentDataBitmap &= ~aDataMemberBitmapPos; williamr@2: } williamr@2: williamr@2: inline void RPacketContext::TPacketFilterV3::Reset() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Sets the iPresentDataBitmap to 0. williamr@2: williamr@2: */ williamr@2: { williamr@2: iPresentDataBitmap = 0; williamr@2: } williamr@2: williamr@2: inline TInt RPacketContext::TPacketFilterV3::ProtocolNumberOrNextHeader() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iProtocolNumberOrNextHeader value which has been set by the williamr@2: SetProtocolNumberOrNextHeader method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iProtocolNumberOrNextHeader; williamr@2: } williamr@2: williamr@2: inline TInt RPacketContext::TPacketFilterV3::SrcPortMin() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iSrcPortMin value which has been set by the williamr@2: SetSrcPortMin method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iSrcPortMin; williamr@2: } williamr@2: williamr@2: inline TInt RPacketContext::TPacketFilterV3::SrcPortMax() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iSrcPortMax value which has been set by the williamr@2: SetSrcPortMax method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iSrcPortMax; williamr@2: } williamr@2: williamr@2: inline TInt RPacketContext::TPacketFilterV3::DestPortMin() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iDestPortMin value which has been set by the williamr@2: SetDestPortMin method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iDestPortMin; williamr@2: } williamr@2: williamr@2: inline TInt RPacketContext::TPacketFilterV3::DestPortMax() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iDestPortMax value which has been set by the williamr@2: SetDestPortMax method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iDestPortMax; williamr@2: } williamr@2: williamr@2: inline TUint32 RPacketContext::TPacketFilterV3::SPI() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iIPSecSPI value which has been set by the williamr@2: SetSPI method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iIPSecSPI; williamr@2: } williamr@2: williamr@2: inline TUint16 RPacketContext::TPacketFilterV3::TOSorTrafficClass() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iTOSorTrafficClass value which has been set by the williamr@2: SetTOSorTrafficClass method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iTOSorTrafficClass; williamr@2: } williamr@2: williamr@2: inline TUint32 RPacketContext::TPacketFilterV3::FlowLabel() williamr@2: /** williamr@2: This method may be called by the client application. williamr@2: Gets the iFlowLabel value which has been set by the williamr@2: SetFlowLabel method. williamr@2: williamr@2: */ williamr@2: { williamr@2: return iFlowLabel; williamr@2: } williamr@2: williamr@2: /** williamr@2: Default constructor. williamr@2: */ williamr@2: inline RPacketContext::TPcoId::TPcoId():iId(0) williamr@2: {} williamr@2: williamr@2: /** williamr@2: Constructor that initialises Id by provoded value. williamr@2: williamr@2: @param aId Id ofIE identifier. williamr@2: */ williamr@2: inline RPacketContext::TPcoId::TPcoId(TUint16 aId):iId(aId) williamr@2: {} williamr@2: williamr@2: /** williamr@2: Sets PCO Id. williamr@2: williamr@2: @param aId PCO Id to set. williamr@2: */ williamr@2: inline void RPacketContext::TPcoId::SetId(TUint16 aId) williamr@2: { williamr@2: iId=aId; williamr@2: } williamr@2: williamr@2: /** williamr@2: Retrieves PCO Id. williamr@2: williamr@2: @return PCO id. williamr@2: */ williamr@2: inline TUint16 RPacketContext::TPcoId::Id() const williamr@2: { williamr@2: return iId; williamr@2: } williamr@2: williamr@2: /** williamr@2: Compares whether the PCO Id of other PCoId is the same. williamr@2: williamr@2: @param PCO Id to compare. williamr@2: */ williamr@2: inline TBool RPacketContext::TPcoId::IsEqual(const MTlvItemIdType& aOtherIdType) const williamr@2: { williamr@2: return iId==(static_cast(aOtherIdType)).Id(); williamr@2: } williamr@2: williamr@2: /** williamr@2: Length of serialised data. williamr@2: williamr@2: @return Length of id when serialized. williamr@2: */ williamr@2: inline TUint RPacketContext::TPcoId::SerializedLength()const williamr@2: { williamr@2: return sizeof(TUint16); williamr@2: } williamr@2: williamr@2: /** williamr@2: Serialise to the descriptor provided williamr@2: williamr@2: Converts internally stored little-endian data williamr@2: to big-endian encoded data as specified in 3GPP TS 24.008, table 10.5.154. williamr@2: williamr@2: @param aData On completion contains serialized PCO item identifier. williamr@2: */ williamr@2: inline void RPacketContext::TPcoId::ExternalizeL(TDes8& aData) const williamr@2: { williamr@2: if(aData.Length()<2) williamr@2: User::Leave(KErrOverflow); williamr@2: aData[0]=(iId & 0xff00)>>8; williamr@2: aData[1]=iId & 0xff; williamr@2: } williamr@2: williamr@2: /** williamr@2: Internalize data from the buffer provided. williamr@2: williamr@2: Converts internally stored little-endian data williamr@2: to big-endian encoded data as specified in 3GPP TS 24.008, table 10.5.154. williamr@2: williamr@2: @param aData Buffer containing PCO item Id to be internalized. williamr@2: */ williamr@2: inline void RPacketContext::TPcoId::InternalizeL(TDesC8& aData) williamr@2: { williamr@2: if(aData.Length()<2) williamr@2: User::Leave(KErrUnderflow); williamr@2: iId=aData[1]; williamr@2: iId|=aData[0]<<8; williamr@2: } williamr@2: williamr@2: /** williamr@2: Constructor initialise length by provided value. williamr@2: williamr@2: @param aLen Length of PCO item. williamr@2: */ williamr@2: inline RPacketContext::TPcoItemDataLength::TPcoItemDataLength(TUint8 aLen):iDataLength(aLen) williamr@2: {} williamr@2: williamr@2: /** williamr@2: Default constructor. williamr@2: */ williamr@2: inline RPacketContext::TPcoItemDataLength::TPcoItemDataLength():iDataLength(0) williamr@2: {} williamr@2: williamr@2: /** williamr@2: Sets length of associated data. williamr@2: williamr@2: @param aLength Length of PCO item. williamr@2: */ williamr@2: inline void RPacketContext::TPcoItemDataLength::SetDataLength(TUint aLength) williamr@2: { williamr@2: iDataLength=(TUint8)aLength; williamr@2: } williamr@2: williamr@2: /** williamr@2: Length when serialised. williamr@2: williamr@2: @return Seriliazed length. williamr@2: */ williamr@2: inline TUint RPacketContext::TPcoItemDataLength::SerializedLength() const williamr@2: { williamr@2: return sizeof(TUint8); williamr@2: } williamr@2: williamr@2: /** williamr@2: Length of associated item data. williamr@2: williamr@2: @return Length of PCO item. williamr@2: */ williamr@2: inline TUint RPacketContext::TPcoItemDataLength::DataLength() const williamr@2: { williamr@2: return iDataLength; williamr@2: }; williamr@2: williamr@2: /** williamr@2: Serialize data member into provoded descriptor. williamr@2: williamr@2: @param aData buffer into which length will be serialized. williamr@2: */ williamr@2: inline void RPacketContext::TPcoItemDataLength::ExternalizeL(TDes8& aData) const williamr@2: { williamr@2: if(aData.Length()<1) williamr@2: User::Leave(KErrOverflow); williamr@2: aData[0]=iDataLength; williamr@2: } williamr@2: williamr@2: /** williamr@2: Deserialize data from provided buffer williamr@2: williamr@2: @param aData Buffer containing length to be internalized. williamr@2: */ williamr@2: inline void RPacketContext::TPcoItemDataLength::InternalizeL(TDesC8& aData) williamr@2: { williamr@2: if(aData.Length()<1) williamr@2: User::Leave(KErrUnderflow); williamr@2: iDataLength=aData[0]; williamr@2: } williamr@2: