// SMUTELEM.INL
//
// Copyright (c) 1998 Symbian Ltd.  All rights reserved.
//



#include "smutelem.h"
#include <s32strm.h>
#include <badesca.h>

inline TSmsOctet::operator TInt() const
	{
	return iValue;
	}

inline void TSmsOctet::FillSemiOctets(TInt aNum)
	{
	*this=(aNum/10)|((aNum%10)<<4);
	}

inline TInt TSmsOctet::SemiOctetsToNum()
	{
	return ((iValue&0x0F)*10) + ((iValue&0xF0)>>4);
	}

inline void TSmsOctet::InternalizeL(RReadStream& aStream)
	{
	aStream >> iValue;
	}

inline void TSmsOctet::ExternalizeL(RWriteStream& aStream) const
	{
	aStream << iValue;
	}

inline TSmsProtocolIdentifier::TSmsPIDType TSmsProtocolIdentifier::PIDType() const
	{
	return (TSmsPIDType) (iValue&ESmsPIDTypeMask);
	}

inline TBool TSms7BitConvert::IsSymbol(TInt /*aChar*/) const
	{
	return EFalse;
	}

inline void TSms7BitConvert::SetStartBit(TInt aStartBit)
	{
	iStartBit=aStartBit;
	}

inline TBool TSms8BitConvert::IsSymbol(TInt /*aChar*/) const
	{
	return EFalse;
	}

inline TBool TSmsUCS2Convert::IsSymbol(TInt /*aChar*/) const
	{
	return EFalse;
	}

inline void CSmsAddress::SetTypeOfNumber(TSmsTypeOfNumber aTypeOfNumber)
	{
	iTypeOfAddress=(iTypeOfAddress&(~ESmsTONMask))|aTypeOfNumber;
	}

inline TInt CSmsAddress::TypeOfNumber() const
	{
	return iTypeOfAddress&ESmsTONMask;
	}

inline TInt TSmsServiceCenterTimeStamp::TimeOffset() const
	{
	return iTimeZoneNumQuarterHours;
	}

inline void TSmsServiceCenterTimeStamp::SetTime(const TTime& aTime)
	{
	iTime=aTime;
	}

inline const TTime& TSmsServiceCenterTimeStamp::Time() const
	{
	return iTime;
	}

inline TSmsFirstOctet::TSmsValidityPeriodFormat TSmsValidityPeriod::ValidityPeriodFormat() const
	{
	return (TSmsFirstOctet::TSmsValidityPeriodFormat) (iFirstOctet&TSmsFirstOctet::ESmsVPFMask);
	}

inline void TSmsValidityPeriod::SetValidityPeriodFormat(TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat)
	{
	iFirstOctet=(iFirstOctet&(~TSmsFirstOctet::ESmsVPFMask)|aValidityPeriodFormat);
	}

inline void TSmsValidityPeriod::SetTimeIntervalMinutes(const TTimeIntervalMinutes& aTimeIntervalMinutes)
	{
	iTimeIntervalMinutes=aTimeIntervalMinutes;
	}

inline const TTimeIntervalMinutes& TSmsValidityPeriod::TimeIntervalMinutes() const
	{
	return iTimeIntervalMinutes;
	}

inline TInt CSmsInformationElement::Identifier() const
	{
	return iIdentifier;
	}

inline TInt CSmsUserData::NumInformationElements() const
	{
	return iInformationElementArray.Count();
	}



