epoc32/include/gsmuelem.inl
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- a/epoc32/include/gsmuelem.inl	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/gsmuelem.inl	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,566 @@
-gsmuelem.inl
+// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// 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
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Inline methods for operations on PDU elements
+// 
+//
+
+
+
+/**
+ @file
+*/
+
+#include <s32strm.h>
+#include <badesca.h>
+
+
+/**
+ *  Leaves with KErrGsmuDecoding.
+ */
+inline void TGsmuLex8::LeaveL() const
+	{
+	User::Leave(KErrGsmuDecoding);
+	}
+
+
+/**
+ *  Constructor, initialising the octet value with a TInt8.
+ *  
+ *  @param aValue Octet value 
+ */
+inline TSmsOctet::TSmsOctet(TUint8 aValue)
+: iValue(aValue)
+	{
+	// NOP
+	}
+
+
+/**
+ *  Constructor, initialising the octet value with a TInt.
+ *  
+ *  @param aValue Octet value 
+ */
+inline TSmsOctet::TSmsOctet(TInt aValue)
+	:iValue(STATIC_CAST(TUint8, aValue))
+	{
+	}
+
+
+/**
+ *  Sets the octet value to the next byte in TGsmuLex8 PDU.
+ *  
+ *  @param aPdu PDU to read value from 
+ */
+inline void TSmsOctet::DecodeL(TGsmuLex8& aPdu)
+	{
+	iValue=aPdu.GetL();
+	}
+
+
+/**
+ *  @return The octet value
+ */
+inline TSmsOctet::operator TInt() const
+	{
+	return iValue;
+	}
+
+
+/**
+ *  Converts an integer to semi-octet format and set the object's data to this
+ *  value.
+ *  
+ *  @param aNum Value to convert to semi-octet 
+ */
+inline void TSmsOctet::FillSemiOctets(TInt aNum)
+	{
+	*this=(aNum/10)|((aNum%10)<<4);
+	}
+
+
+/**
+ *  Converts a semi-octet value to an integer.
+ *  
+ *  @return Object's data as an integer 
+ */
+inline TInt TSmsOctet::SemiOctetsToNum() const
+	{
+	return ((iValue&0x0F)*10) + ((iValue&0xF0)>>4);
+	}
+
+
+/**
+ *  Internalises the object.
+ *  
+ *  @param aStream Stream to read from 
+ */
+inline void TSmsOctet::InternalizeL(RReadStream& aStream)
+	{
+	aStream >> iValue;
+	}
+
+
+/**
+ *  Externalises the object.
+ *  
+ *  @param aStream Stream to write to 
+ */
+inline void TSmsOctet::ExternalizeL(RWriteStream& aStream) const
+	{
+	aStream << iValue;
+	}
+
+
+/**
+ *  Gets the error code.
+ *  
+ *  @return Error code 
+ */
+inline TInt TSmsFailureCause::Error() const
+	{
+	return iValue;
+	}
+
+
+/**
+ *  Sets the error code.
+ *  
+ *  @param aError Error code 
+ */
+inline void TSmsFailureCause::SetError(TSmsFailureCauseError aError)
+	{
+	iValue=(TUint8) aError;
+	}
+
+
+/**
+ *  Gets status value.
+ *  
+ *  @return Status value 
+ */
+TSmsStatus::TSmsStatusValue TSmsStatus::Status() const
+	{
+	return (TSmsStatusValue) iValue;
+	}
+
+
+/**
+ *  Sets status value.
+ *  
+ *  @param aValue Status value 
+ */
+inline void TSmsStatus::SetStatus(TSmsStatusValue aValue)
+	{
+	iValue=(TUint8) aValue;
+	}
+
+
+/**
+ *  Gets command type.
+ *  
+ *  @return Command type 
+ */
+inline TInt TSmsCommandType::CommandType() const
+	{
+	return iValue;
+	}
+
+
+/**
+ *  Sets command type.
+ *  
+ *  @param aType Command type 
+ */
+inline void TSmsCommandType::SetCommandType(TSmsCommandTypeValue aType)
+	{
+	iValue=(TUint8) aType;
+	}
+
+
+/**
+ *  Tests if the extension flag is set.
+ *  
+ *  @return True if data contains a PID extension 
+ */
+inline TBool TSmsParameterIndicator::Extension() const
+	{
+	return iValue&ESmsPIDExtension;
+	}
+
+
+/**
+ *  Sets extension flag.
+ *  
+ *  @param aExtension Extension flag 
+ */
+inline void TSmsParameterIndicator::SetExtension(TBool aExtension)
+	{
+	iValue=(TUint8) (aExtension? iValue|ESmsPIDExtension: (iValue&(~ESmsPIDExtension)));
+	}
+
+
+/**
+ *  Tests user data present flag.
+ *  
+ *  @return True if User Data is indicated 
+ */
+inline TBool TSmsParameterIndicator::UserDataPresent() const
+	{
+	return iValue&ESmsPIDUserDataPresent;
+	}
+
+
+/**
+ *  Sets user data present flag.
+ *  
+ *  @param aPresent Set to True/False to indicate/clear User Data 
+ */
+inline void TSmsParameterIndicator::SetUserDataPresent(TBool aPresent)
+	{
+	iValue=(TUint8) (aPresent? iValue|ESmsPIDUserDataPresent: iValue&(~ESmsPIDUserDataPresent));
+	}
+
+
+/**
+ *  Tests data coding scheme present flag.
+ *  
+ *  @return True to indicate Data Coding Scheme present 
+ */
+inline TBool TSmsParameterIndicator::DataCodingSchemePresent() const
+	{
+	return iValue&ESmsPIDDataCodingSchemePresent;
+	}
+
+
+/**
+ *  Sets data coding scheme present flag.
+ *  
+ *  @param aPresent Set to True/False to indicate/clear Data Coding Scheme present 
+ */
+inline void TSmsParameterIndicator::SetDataCodingSchemePresent(TBool aPresent)
+	{
+	iValue=(TUint8) (aPresent? iValue|ESmsPIDDataCodingSchemePresent: iValue&(~ESmsPIDDataCodingSchemePresent));
+	}
+
+
+/**
+ *  Tests protocol identifier present flag.
+ *  
+ *  @return True to indicate Protocol ID present 
+ */
+inline TBool TSmsParameterIndicator::ProtocolIdentifierPresent() const
+	{
+	return iValue&ESmsPIDProtocolIdentifierPresent;
+	}
+
+
+/**
+ *  Sets protocol identifier present flag.
+ *  
+ *  @param aPresent PSet to True/False to indicate/clear Protocol ID present 
+ */
+inline void TSmsParameterIndicator::SetProtocolIdentifierPresent(TBool aPresent)
+	{
+	iValue=(TUint8) (aPresent? iValue|ESmsPIDProtocolIdentifierPresent: iValue&(~ESmsPIDProtocolIdentifierPresent));
+	}
+
+
+/**
+ *  Gets the Protocol ID type.
+ *  
+ *  @return Protocol ID type 
+ */
+inline TSmsProtocolIdentifier::TSmsPIDType TSmsProtocolIdentifier::PIDType() const
+	{
+	return (TSmsPIDType) (iValue&ESmsPIDTypeMask);
+	}
+
+
+/**
+ *  Sets the Protocol ID type.
+ *  
+ *  @param aSmsPIDType Protocol ID type 
+ */
+inline void TSmsProtocolIdentifier::SetPIDType(TSmsPIDType aSmsPIDType)
+	{
+	iValue=(TUint8) aSmsPIDType;
+	}
+
+
+/**
+ *  Gets bits 7 - 4 of the Data Coding Scheme.
+ *  
+ *  @return Bits 7 - 4 of the Data Coding Scheme 
+ */
+inline TSmsDataCodingScheme::TSmsDCSBits7To4 TSmsDataCodingScheme::Bits7To4() const
+	{
+	return (TSmsDCSBits7To4) (iValue&ESmsDCSBits7To4Mask);
+	}
+
+
+/**
+ *  Sets bits 7 - 4 of the Data Coding Scheme.
+ *  
+ *  @param aBits7To4 Bits 7 - 4 of the Data Coding Scheme 
+ */
+inline void TSmsDataCodingScheme::SetBits7To4(TSmsDCSBits7To4 aBits7To4)
+	{
+	iValue=(TUint8) (aBits7To4);
+	}
+
+
+/**
+ *  Constructor, specifying an octet value.
+ *  
+ *  @param aValue Octet value 
+ */
+inline TGsmSmsTypeOfAddress::TGsmSmsTypeOfAddress(TInt aValue)
+: TSmsOctet(aValue)
+	{
+	}
+
+
+/**
+ *  Constructor, specifying type of numbering and numbering plan identification.
+ *  
+ *  @param aTon Type of numbering
+ *  @param aNPI Numbering plan identification 
+ */
+inline TGsmSmsTypeOfAddress::TGsmSmsTypeOfAddress(TGsmSmsTypeOfNumber aTon, TGsmSmsNumberingPlanIdentification aNPI)
+: TSmsOctet(EGsmSmsFirstBitMask)
+	{
+	SetTON(aTon);
+	SetNPI(aNPI);
+	}
+
+
+/**
+ *  Gets the type of numbering.
+ *  
+ *  @return Type of numbering 
+ */
+inline TGsmSmsTypeOfNumber TGsmSmsTypeOfAddress::TON() const
+	{
+	return (TGsmSmsTypeOfNumber) (iValue & EGsmSmsTONMask);
+	}
+
+
+/**
+ *  Sets the type of numbering.
+ *  
+ *  @param aTON Type of numbering 
+ */
+inline void TGsmSmsTypeOfAddress::SetTON(TGsmSmsTypeOfNumber aTON)
+	{
+	iValue = (TUint8) ((iValue & (~EGsmSmsTONMask)) | aTON);
+	}
+
+
+/**
+ *  Gets the numbering plan identification.
+ *  
+ *  @return Numbering plan identification 
+ */
+inline TGsmSmsNumberingPlanIdentification TGsmSmsTypeOfAddress::NPI() const
+	{
+	return (TGsmSmsNumberingPlanIdentification) (iValue & EGsmSmsNPIMask);
+	}
+
+
+/**
+ *  Set the Numbering Plan Identification 
+ */
+inline void TGsmSmsTypeOfAddress::SetNPI(TGsmSmsNumberingPlanIdentification aNumberingPlanIdentification)
+	{
+	iValue = (TUint8) ((iValue &(~EGsmSmsNPIMask)) | aNumberingPlanIdentification);
+	}
+
+
+/**
+ *  Constructor
+ */
+inline TGsmSmsTelNumber::TGsmSmsTelNumber()
+	{
+	}
+
+
+/**
+ *  Gets the time zone offset from GMT in +/- quarter hours.
+ *  The allowed range is +/-79 per 23.040 V4.4.0 9.2.3.11.
+ *  
+ *  @return Time zone offset 
+ */
+inline TInt TSmsServiceCenterTimeStamp::TimeOffset() const
+	{
+	return iTimeZoneNumQuarterHours;
+	}
+
+
+/**
+ *  Gets the Service Center Time in Universal Time.
+ *  
+ *  @return The Service Center Time 
+ */
+inline const TTime& TSmsServiceCenterTimeStamp::Time() const
+	{
+	return iTime;
+	}
+
+
+/**
+ *  Sets the Service Center Time Stamp in Universal Time.
+ *  
+ *  @param aTime The Service Center Time 
+ */
+inline void TSmsServiceCenterTimeStamp::SetTime(const TTime& aTime)
+	{
+	iTime=aTime;
+	}
+
+
+/**
+ *  Gets the message Validity Period Format.
+ *  
+ *  @return The message Validity Period Format 
+ */
+inline TSmsFirstOctet::TSmsValidityPeriodFormat TSmsValidityPeriod::ValidityPeriodFormat() const
+	{
+	return (TSmsFirstOctet::TSmsValidityPeriodFormat) (iFirstOctet&TSmsFirstOctet::ESmsVPFMask);
+	}
+
+
+/**
+ *  Sets the message Validity Period Format.
+ *  
+ *  @param aValidityPeriodFormat The message Validity Period Format 
+ */
+inline void TSmsValidityPeriod::SetValidityPeriodFormat(TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat)
+	{
+	iFirstOctet=(iFirstOctet&(~TSmsFirstOctet::ESmsVPFMask)|aValidityPeriodFormat);
+	}
+
+
+/**
+ *  Gets the message Validity Period in minutes.
+ *  
+ *  @return The message Validity Period in minutes 
+ */
+inline const TTimeIntervalMinutes& TSmsValidityPeriod::TimeIntervalMinutes() const
+	{
+	return iTimeIntervalMinutes;
+	}
+
+
+/**
+ *  Sets the message Validity Period in minutes.
+ *  
+ *  @param aTimeIntervalMinutes The message Validity Period in minutes 
+ */
+inline void TSmsValidityPeriod::SetTimeIntervalMinutes(const TTimeIntervalMinutes& aTimeIntervalMinutes)
+	{
+	iTimeIntervalMinutes=aTimeIntervalMinutes;
+	}
+
+
+/**
+ *  Resets the unconverted native character buffer.
+ */
+inline void CSmsAlphabetConverter::ResetUnconvertedNativeCharacters()
+	{
+	iUnconvertedNativeCharactersPtr.Zero();
+	}
+
+
+/**
+ *  Resets the unconverted user data elements buffer.
+ */
+inline void CSmsAlphabetConverter::ResetUnconvertedUDElements()
+	{
+	iUnconvertedUDElementsPtr.Zero();
+	}
+
+
+/**
+ *  Gets the unconverted native characters.
+ *  
+ *  @return Unconverted native characters 
+ */
+inline TPtrC CSmsAlphabetConverter::UnconvertedNativeCharacters()
+	{
+	return iUnconvertedNativeCharactersPtr;
+	}
+
+
+/**
+ *  Gets the unconverted user data elements.
+ *  
+ *  @return Unconverted user data elements 
+ */
+inline TPtrC8 CSmsAlphabetConverter::UnconvertedUDElements()
+	{
+	return iUnconvertedUDElementsPtr;
+	}
+
+
+/**
+ *  Gets the coding scheme alphabet.
+ *  
+ *  @return Coding scheme alphabet 
+ */
+inline TSmsDataCodingScheme::TSmsAlphabet CSmsAlphabetConverter::Alphabet() const
+	{
+	return iSmsAlphabet;
+	}
+
+
+/**
+ *  @publishedAll
+ *  @released
+ */
+inline CSmsInformationElement::CSmsInformationElement(TSmsInformationElementIdentifier aInformationElementIdentifier):iIdentifier(aInformationElementIdentifier)
+	{
+	}
+
+
+/**
+ *  Gets the number of information elements.
+ *  
+ *  @return Number of information elements 
+ */
+inline TInt CSmsUserData::NumInformationElements() const
+	{
+	return iInformationElementArray.Count();
+	}
+
+
+/**
+ *  @return The number of Command Information Elements
+ *  @publishedAll
+ *  @released
+ */
+inline TInt CSmsCommandData::NumInformationElements() const
+	{
+	return iInformationElementArray.Count();
+	}
+
+
+/**
+ *  @return The amount of space in the Command buffer
+ *  @publishedAll
+ *  @released
+ */
+inline TInt CSmsCommandData::MaxDataLength() const
+	{
+	return KSmsMaxDataSize-iBuffer->Des().Length();
+	}