diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/gsmuelem.inl --- 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 +#include + + +/** + * 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(); + }