CSmsPDU Class Reference
class CSmsPDU : public CBase |
A generic interface to a GSM SMS PDU.
The class can be used on its own to encode GSM SMS PDUs. It is also the base class for the six real implementations of GSM SMS PDUs. The derived classes are built up from the elements defined in gsmuelem.h according to the ETSI GSM 03.40. All the SMS elements have generic encode and decode functions so that each PDU type knows how to encode and decode itself into a TGsmSms.
CSmsPDU and derived classes provide a human readable interface to a GSM SMS PDU, for example setting the destination address on a SUBMIT (CSmsSubmit). All the factory functions for CSmsPDUs are provided in the base class.
Public Member Functions |
---|
IMPORT_C TSmsDataCodingScheme::TSmsAlphabet | Alphabet() |
IMPORT_C TBool | ApplicationPortAddressing(TInt &, TInt &, TBool *) |
IMPORT_C TSmsDataCodingScheme::TSmsDCSBits7To4 | Bits7To4() |
IMPORT_C TBool | Class(TSmsDataCodingScheme::TSmsClass &) |
IMPORT_C TInt | ConcatenatedMessagePDUIndex() |
IMPORT_C TInt | ConcatenatedMessageReference() |
IMPORT_C TBool | DataCodingSchemePresent() |
void | DecodeL(TGsmuLex8 &) |
IMPORT_C CSmsPDU * | DuplicateL() |
IMPORT_C void | EncodeMessagePDUL(TGsmSms &) |
void | EncodeMessagePDUL(TGsmSms &, const TEncodeParams *) |
IMPORT_C void | ExternalizeL(RWriteStream &) |
IMPORT_C TSmsDataCodingScheme::TSmsIndicationState | IndicationState() |
IMPORT_C TSmsDataCodingScheme::TSmsIndicationType | IndicationType() |
IMPORT_C TSmsEncoding | NationalLanguageEncoding() |
IMPORT_C CSmsPDU * | NewL(RReadStream &, CCnvCharacterSetConverter &, RFs &) |
IMPORT_C CSmsPDU * | NewL(const TGsmSms &, CCnvCharacterSetConverter &, RFs &, TBool, TBool) |
IMPORT_C CSmsPDU * | NewL(TSmsPDUType, CCnvCharacterSetConverter &, RFs &, TBool) |
IMPORT_C TInt | NumConcatenatedMessagePDUs() |
IMPORT_C TSmsProtocolIdentifier::TSmsPIDType | PIDType() |
IMPORT_C void | ParsedServiceCenterAddress(TGsmSmsTelNumber &) |
IMPORT_C void | ParsedToFromAddress(TGsmSmsTelNumber &) |
IMPORT_C TBool | ProtocolIdentifierPresent() |
IMPORT_C TPtrC | ServiceCenterAddress() |
IMPORT_C void | SetAlphabet(TSmsDataCodingScheme::TSmsAlphabet) |
IMPORT_C void | SetApplicationPortAddressingL(TBool, TInt, TInt, TBool) |
IMPORT_C void | SetBits7To4(TSmsDataCodingScheme::TSmsDCSBits7To4) |
IMPORT_C void | SetClass(TBool, TSmsDataCodingScheme::TSmsClass) |
IMPORT_C void | SetConcatenatedMessagePDUIndex(TInt) |
IMPORT_C void | SetConcatenatedMessageReference(TInt) |
IMPORT_C void | SetDataCodingSchemePresent(TBool) |
IMPORT_C void | SetIndicationState(TSmsDataCodingScheme::TSmsIndicationState) |
IMPORT_C void | SetIndicationType(TSmsDataCodingScheme::TSmsIndicationType) |
IMPORT_C void | SetNationalLanguageEncodingL(TSmsEncoding) |
IMPORT_C void | SetNumConcatenatedMessagePDUs(TInt) |
IMPORT_C void | SetPIDType(TSmsProtocolIdentifier::TSmsPIDType) |
IMPORT_C void | SetParsedServiceCenterAddressL(const TGsmSmsTelNumber &) |
IMPORT_C void | SetParsedToFromAddressL(const TGsmSmsTelNumber &) |
IMPORT_C void | SetProtocolIdentifierPresent(TBool) |
IMPORT_C void | SetServiceCenterAddressL(const TDesC &) |
IMPORT_C void | SetShortMessageType(TSmsProtocolIdentifier::TSmsShortMessageType) |
IMPORT_C void | SetTelematicDeviceIndicator(TSmsProtocolIdentifier::TSmsTelematicDeviceIndicator) |
IMPORT_C void | SetTelematicDeviceType(TSmsProtocolIdentifier::TSmsTelematicDeviceType) |
IMPORT_C void | SetTextCompressed(TBool) |
IMPORT_C void | SetTextConcatenatedL(TBool, TBool) |
IMPORT_C void | SetToFromAddressL(const TDesC &) |
IMPORT_C void | SetUserDataPresent(TBool) |
IMPORT_C TSmsProtocolIdentifier::TSmsShortMessageType | ShortMessageType() |
IMPORT_C TSmsProtocolIdentifier::TSmsTelematicDeviceIndicator | TelematicDeviceIndicator() |
IMPORT_C TSmsProtocolIdentifier::TSmsTelematicDeviceType | TelematicDeviceType() |
IMPORT_C TBool | TextCompressed() |
IMPORT_C TBool | TextConcatenated(TBool *) |
IMPORT_C TPtrC | ToFromAddress() |
TSmsPDUType
| Type() |
void | UpdateConcatenationDataL(TInt, TInt, TInt) |
void | UpdateEmailHeaderDataL(TInt &) |
TBool
| UpdateSMSCCtrlParameterL(const TUint8) |
TBool
| UpdateTPSRRL(TSmsFirstOctet) |
IMPORT_C CSmsUserData & | UserData() |
IMPORT_C const CSmsUserData & | UserData() |
IMPORT_C TBool | UserDataPresent() |
Constructor & Destructor Documentation
Member Functions Documentation
Alphabet()
Gets the alphabet encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
ApplicationPortAddressing(TInt &, TInt &, TBool *)
IMPORT_C TBool | ApplicationPortAddressing | ( | TInt & | aDestination, |
| TInt & | aOriginator, |
| TBool * | aIs16Bit = NULL |
| ) | const |
Gets application port addressing information in the user data.
Parameters
TInt & aDestination | The destination port address |
TInt & aOriginator | The originating port address |
TBool * aIs16Bit = NULL | Set to true if the addressing is 16 bit. Default is null. |
Bits7To4()
Gets bits 7 to 4 on the data coding scheme.
The value of bits 7 to 4 effects the meaning of the lower order bits.
The function panics if the data coding scheme is not present.
Class(TSmsDataCodingScheme::TSmsClass &)
Gets the GSM SMS PDU class in the data coding scheme.
The function panics if the data coding scheme is not present.
ConcatenatedMessagePDUIndex()
IMPORT_C TInt | ConcatenatedMessagePDUIndex | ( | ) | const |
Gets the index of the PDU within the Concatenated Message.
The function panics if the PDU is not concatenated.
ConcatenatedMessageReference()
IMPORT_C TInt | ConcatenatedMessageReference | ( | ) | const |
Gets the reference contained in the Concatenation Information Element.
ConstructL(CCnvCharacterSetConverter &, RFs &)
DataCodingSchemePresent()
IMPORT_C TBool | DataCodingSchemePresent | ( | ) | const |
Tests if data coding scheme is present.
Panics if PDU type is unsupported.
DoApplicationPortAddressing(TInt &, TInt &, TInt &, TBool *)
TBool
| DoApplicationPortAddressing | ( | TInt & | aIndex, |
| TInt & | aDestination, |
| TInt & | aOriginator, |
| TBool * | aIs16Bit |
| ) | const [private] |
DoSetApplicationPortAddressingL(TInt, TInt, TBool)
void | DoSetApplicationPortAddressingL | ( | TInt | aDestination, |
| TInt | aOriginator, |
| TBool | aIs16Bit |
| ) | [private] |
DoSetTextConcatenatedL(TBool)
void | DoSetTextConcatenatedL | ( | TBool | aIs16Bit | ) | [private] |
DoTextConcatenated(TInt &, TBool *)
TBool
| DoTextConcatenated | ( | TInt & | aIndex, |
| TBool * | aIs16Bit |
| ) | const [private] |
DuplicateL()
IMPORT_C CSmsPDU * | DuplicateL | ( | ) | const |
EncodeL(TUint8 *)
TUint8 * | EncodeL | ( | TUint8 * | aPtr | ) | const [protected, pure virtual] |
EncodeL(TUint8 *, const TEncodeParams *)
EncodeMessagePDUL(TGsmSms &)
IMPORT_C void | EncodeMessagePDUL | ( | TGsmSms & | aGsmSms | ) | const |
Parameters
TGsmSms & aGsmSms | On return, encoded GSM SMS PDU |
EncodeMessagePDUL(TGsmSms &, const TEncodeParams *)
ExternalizeL(RWriteStream &)
ExternalizeMessagePDUL(RWriteStream &)
void | ExternalizeMessagePDUL | ( | RWriteStream & | aStream | ) | const [protected, pure virtual] |
IndicationState()
Gets the Indication State encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
IndicationType()
Gets the Indication Type encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
InternalizeMessagePDUL(RReadStream &)
void | InternalizeMessagePDUL | ( | RReadStream & | aStream | ) | [protected, pure virtual] |
NationalLanguageEncoding()
NewL(RReadStream &, CCnvCharacterSetConverter &, RFs &)
Restores a CSmsPDU from a stream where the object has bean previously persisted.
The type is determined from the first byte in the stream.
Parameters
RReadStream & aStream | Stream from which to restore this CSmsPDU |
CCnvCharacterSetConverter & aCharacterSetConverter | Character converter utility, required for encoding and decoding this PDU |
RFs & aFs | File system handle, required for encoding and decoding this PDU |
NewL(const TGsmSms &, CCnvCharacterSetConverter &, RFs &, TBool, TBool)
Allocates and constructs a CSmsPDU from a TGsmSms.
The type of SMS to construct is determined from the first octet in aGsmSms and whether the SMS is mobile terminated.
Parameters
const TGsmSms & aGsmSms | Encoded (raw) GSM SMS PDU |
CCnvCharacterSetConverter & aCharacterSetConverter | Character converter utility, required for encoding and decoding this PDU |
RFs & aFs | File system handle, required for encoding and decoding this PDU |
TBool aIsRPError = EFalse | True if the PDU is part of an RP Error. This is used only for SUBMIT REPORT (CSmsSubmitReport) and DELIVER REPORT (CSmsDeliverReport), as the format of these PDUs differs depending on whether the PDU is part of an RP Ack or RP Error. |
TBool aIsMobileTerminated = ETrue | Used to determine (with the first octet in aGsmSms) the TSmsPDUType |
NewL(TSmsPDUType, CCnvCharacterSetConverter &, RFs &, TBool)
Allocates and constructs a CSmsPDU, with the type specified by a TSmsPDUType.
Parameters
TSmsPDUType aType | The PDU type to construct |
CCnvCharacterSetConverter & aCharacterSetConverter | Character converter utility, required for encoding and decoding this PDU |
RFs & aFs | File system handle, required for encoding and decoding this PDU |
TBool aIsRPError = EFalse | True if the PDU is part of an RP Error. This is used only for SUBMIT REPORT (CSmsSubmitReport) and DELIVER REPORT (CSmsDeliverReport), as the format of these PDUs differs depending on whether the PDU is part of an RP Ack or RP Error. |
NumConcatenatedMessagePDUs()
IMPORT_C TInt | NumConcatenatedMessagePDUs | ( | ) | const |
Gets the number of PDU's in a Concatenated Message.
The function panics if the PDU is not concatenated.
PIDType()
Gets key bits 7 and 6 of the PID field.
ParsedServiceCenterAddress(TGsmSmsTelNumber &)
Gets the service center address in a TGsmSmsTelNumber object.
A prepended '+', spaces and aphabetic characters are removed.
ParsedToFromAddress(TGsmSmsTelNumber &)
Gets the "to from" in a TGsmSmsTelNumber object.
A prepended '+', spaces and aphabetic characters are removed.
ProtocolIdentifierPresent()
IMPORT_C TBool | ProtocolIdentifierPresent | ( | ) | const |
Tests if Protocol Identifier is present.
It panics if the PDU type is unsupported.
ServiceCenterAddress()
IMPORT_C TPtrC | ServiceCenterAddress | ( | ) | const |
Gets the service center address.
It is assumed that the address is Unicode, and can contain spaces and alphabetic characters.
SetAlphabet(TSmsDataCodingScheme::TSmsAlphabet)
Sets the alphabet encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
SetApplicationPortAddressingL(TBool, TInt, TInt, TBool)
IMPORT_C void | SetApplicationPortAddressingL | ( | TBool | aAddressing, |
| TInt | aDestination, |
| TInt | aOriginator, |
| TBool | aIs16Bit = EFalse |
| ) | |
Sets application port addressing information in the user data.
Parameters
TBool aAddressing | If true, set application port addressing in the PDU. If false, removes addressing if it's already set |
TInt aDestination | The destination port address to set in the PDU |
TInt aOriginator | The originating port address to set in the PDU |
TBool aIs16Bit = EFalse | True if the addresses are 16 bit, false if 8 bit |
SetBits7To4(TSmsDataCodingScheme::TSmsDCSBits7To4)
Sets key bits 7 to 4 of the data coding scheme.
This is designed to be used for message waiting indication, as it is not needed for the normal type of data coding scheme where the alphabet and class are defined in the lower order bits.
The function panics if the data coding scheme is not present.
SetClass(TBool, TSmsDataCodingScheme::TSmsClass)
Sets the GSM SMS PDU class in the data coding scheme.
The function panics if the data coding scheme is not present.
SetConcatenatedMessagePDUIndex(TInt)
IMPORT_C void | SetConcatenatedMessagePDUIndex | ( | TInt | aIndex | ) | |
Sets the index of the PDU within the Concatenated Message.
The function panics if the PDU is not concatenated or aIndex is out of range.
Parameters
TInt aIndex | Index of the PDU within the Concatenated Message |
SetConcatenatedMessageReference(TInt)
IMPORT_C void | SetConcatenatedMessageReference | ( | TInt | aReference | ) | |
Sets the reference contained in the Concatenation Information Element.
The function panics if aReference is out of range for the message type.
Parameters
TInt aReference | Value to set the Concatenated Message Reference. |
SetDataCodingSchemePresent(TBool)
IMPORT_C void | SetDataCodingSchemePresent | ( | TBool | aPresent | ) | |
Sets if data coding scheme is present.
Parameters
TBool aPresent | True if data coding scheme is present |
SetIndicationState(TSmsDataCodingScheme::TSmsIndicationState)
Sets the Indication State encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
SetIndicationType(TSmsDataCodingScheme::TSmsIndicationType)
Sets the Indication Type encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
SetNationalLanguageEncodingL(TSmsEncoding)
IMPORT_C void | SetNationalLanguageEncodingL | ( | TSmsEncoding | aEncoding | ) | |
SetNumConcatenatedMessagePDUs(TInt)
IMPORT_C void | SetNumConcatenatedMessagePDUs | ( | TInt | aNum | ) | |
Sets the number of PDU's in a Concatenated Message.
The function panics if the PDU is not concatenated or if aNum is out of range.
Parameters
TInt aNum | Number of PDU's in a Concatenated Message |
SetPIDType(TSmsProtocolIdentifier::TSmsPIDType)
Sets key bits 7 and 6 of the PID field.
SetParsedServiceCenterAddressL(const TGsmSmsTelNumber &)
IMPORT_C void | SetParsedServiceCenterAddressL | ( | const TGsmSmsTelNumber & | aParsedAddress | ) | |
SetParsedToFromAddressL(const TGsmSmsTelNumber &)
SetProtocolIdentifierPresent(TBool)
IMPORT_C void | SetProtocolIdentifierPresent | ( | TBool | aPresent | ) | |
Sets if Protocol Identifier is present.
It panics if the PDU type is unsupported.
Parameters
TBool aPresent | True if Protocol Identifier is present |
SetServiceCenterAddressL(const TDesC &)
IMPORT_C void | SetServiceCenterAddressL | ( | const TDesC & | aAddress | ) | |
Sets the service center address.
A prepended '+' is used to indicate an international number.
Parameters
const TDesC & aAddress | Service center address |
SetShortMessageType(TSmsProtocolIdentifier::TSmsShortMessageType)
Sets the Short Message Type in the PID field.
SetTelematicDeviceIndicator(TSmsProtocolIdentifier::TSmsTelematicDeviceIndicator)
Sets the Telematic device indicator from the PID field.
SetTelematicDeviceType(TSmsProtocolIdentifier::TSmsTelematicDeviceType)
Sets the Telematic device type in the PID field.
SetTextCompressed(TBool)
IMPORT_C void | SetTextCompressed | ( | TBool | aCompressed | ) | |
Set to encode Text Compressed in the data coding scheme.
The function panics if the data coding scheme is not present.
Parameters
TBool aCompressed | True to encode Text Compressed |
SetTextConcatenatedL(TBool, TBool)
IMPORT_C void | SetTextConcatenatedL | ( | TBool | aConcatenated, |
| TBool | aIs16Bit = EFalse |
| ) | |
Sets whether the PDU is part of a concatenated message or not.
It is a leaving function as it is inserting an information element into the user data.
Parameters
TBool aConcatenated | True if message is concatenated |
TBool aIs16Bit = EFalse | True if type of Concatenation Information Element is 16 bit |
SetToFromAddressL(const TDesC &)
IMPORT_C void | SetToFromAddressL | ( | const TDesC & | aAddress | ) | |
Sets the "to from" address.
The function panics for a DELIVER REPORT (CSmsDeliverReport) or a SUBMIT REPORT (CSmsSubmitReport).
A prepended '+' is used to indicate an international number.
Parameters
const TDesC & aAddress | The destination or sender address |
SetUserDataPresent(TBool)
IMPORT_C void | SetUserDataPresent | ( | TBool | aPresent | ) | |
Sets or unsets the User Data Header Indicator.
It panics if PDU type is unsupported.
Parameters
TBool aPresent | True to set the User Data Header Indicator |
ShortMessageType()
Gets the Short Message Type in the PID field.
TelematicDeviceIndicator()
Gets the Telematic device indicator from the PID field.
TelematicDeviceType()
Gets the Telematic device type in the PID field.
TextCompressed()
IMPORT_C TBool | TextCompressed | ( | ) | const |
True if Text Compressed is encoded in the data coding scheme.
The function panics if the data coding scheme is not present.
TextConcatenated(TBool *)
IMPORT_C TBool | TextConcatenated | ( | TBool * | aIs16Bit = NULL | ) | const |
Tests if the PDU is part of a concatenated message.
Parameters
TBool * aIs16Bit = NULL | Content is set true if Concatenation Information Element is 16-bit. Default is null. |
ToFromAddress()
IMPORT_C TPtrC | ToFromAddress | ( | ) | const |
Gets the "to from" address.
This address is the original (sender's) address for a DELIVER (CSmsDeliver), the destination address for a SUBMIT (CSmsSubmit), the recipient (sender's) address for a STATUS REPORT (CSmsStatusReport) and the destination address for a COMMAND (CSmsCommand).
The function panics for a DELIVER REPORT (CSmsDeliverReport) or a SUBMIT REPORT (CSmsSubmitReport).
It is assumed that the address is Unicode, and can contain spaces and alphabetic characters.
ToFromAddressPtr()
const CSmsAddress * | ToFromAddressPtr | ( | ) | const [protected, virtual] |
UpdateConcatenationDataL(TInt, TInt, TInt)
void | UpdateConcatenationDataL | ( | TInt | aRef, |
| TInt | aPduIndex, |
| TInt | aMaxPdu |
| ) | |
Updates the three pieces of concatenation data (reference number, pdu index and max pdu number) in this PDU.
Parameters
TInt aRef | Reference number. |
TInt aPduIndex | Current PDU number. |
TInt aMaxPdu | Total PDU number. |
UpdateEmailHeaderDataL(TInt &)
void | UpdateEmailHeaderDataL | ( | TInt & | aEmailOverallHeaderLength | ) | |
Updates the email header data in this PDU.
Parameters
TInt & aEmailOverallHeaderLength | Length of the email header. |
UpdateSMSCCtrlParameterL(const TUint8)
Updates the SMSC control parameter in this PDU.
Parameters
const TUint8 aOctet | Value to store in the SMSC control parameter. |
UpdateTPSRRL(TSmsFirstOctet)
Updates the TPSRRL control parameter in this PDU.
UserData()
Gets User Data (non-const).
UserDataPresent()
IMPORT_C TBool | UserDataPresent | ( | ) | const |
Tests if the User Data Header Indicator is set.
It panics if PDU type is unsupported.
Member Enumerations Documentation
Enum TSmsPDUType
Flags for the 6 basic PDU types in GSM SMS messaging.
Enumerators
ESmsDeliver = 0 | |
ESmsDeliverReport = 1 | |
ESmsSubmit = 2 | |
ESmsSubmitReport = 3 | |
ESmsStatusReport = 4 | |
ESmsCommand = 5 | |
Member Data Documentation
CSmsAddress * iServiceCenterAddress
const TSmsPDUType iSmsPDUType
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.