1.1 --- a/epoc32/include/smuthdr.h Tue Mar 16 16:12:26 2010 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,270 +0,0 @@
1.4 -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// 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
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -//
1.18 -
1.19 -#ifndef __SMUTHDR_H__
1.20 -#define __SMUTHDR_H__
1.21 -
1.22 -#include <e32base.h>
1.23 -#include <gsmubuf.h>
1.24 -#include <bif.h>
1.25 -#include <gsmupdu.h>
1.26 -#include <msvstd.h>
1.27 -#include <smutset.h>
1.28 -
1.29 -class RMsvReadStream;
1.30 -class RMsvWriteStream;
1.31 -class CMsvStore;
1.32 -class CSmsEmailFields;
1.33 -
1.34 -/**
1.35 -The SMS MTM encapsulation of an SMS message.
1.36 -
1.37 -This class allows a messaging client to access the lower-level message encapsulation
1.38 -used by the SMS stack.
1.39 -
1.40 -It also provides functionality to restore and store an SMS message from/to the
1.41 -message store.
1.42 -
1.43 -An SMS message is encapsulated in a Protocol Data Unit (PDU). In GSM there are
1.44 -six types of SMS message PDU. In the descriptions below, SC means Service Center
1.45 -and MS means Mobile Station (the phone).
1.46 -
1.47 -1. SMS-DELIVER - sent from SC to MS
1.48 -
1.49 -2. SMS-DELIVER-REPORT - sent from MS to SC
1.50 -
1.51 -3. SMS-SUBMIT - sent from MS to SC
1.52 -
1.53 -4. SMS-SUBMIT-REPORT - sent from SC to MS
1.54 -
1.55 -5. SMS-STATUS-REPORT - sent from SC to MS
1.56 -
1.57 -6. SMS-COMMAND - sent from MS to SC
1.58 -
1.59 -@publishedAll
1.60 -@released
1.61 -*/
1.62 -class CSmsHeader : public CBase
1.63 - {
1.64 -public:
1.65 -
1.66 - IMPORT_C static CSmsHeader* NewL(CSmsPDU::TSmsPDUType aType,CEditableText& aText);
1.67 - IMPORT_C static CSmsHeader* NewL(CSmsPDU::TSmsPDUType aType,CEditableText& aText,RFs& aFs);
1.68 - IMPORT_C static CSmsHeader* NewL(CSmsMessage* aMessage);
1.69 - IMPORT_C ~CSmsHeader();
1.70 -
1.71 - inline CSmsPDU::TSmsPDUType Type() const;
1.72 -
1.73 - inline CSmsSubmit& Submit();
1.74 - inline const CSmsSubmit& Submit() const;
1.75 - inline CSmsDeliver& Deliver();
1.76 - inline const CSmsDeliver& Deliver() const;
1.77 - inline CSmsCommand& Command();
1.78 - inline const CSmsCommand& Command() const;
1.79 - inline CSmsStatusReport& StatusReport();
1.80 - inline const CSmsStatusReport& StatusReport() const;
1.81 -
1.82 - inline CSmsMessage& Message();
1.83 - inline const CSmsMessage& Message() const;
1.84 -
1.85 - inline TBool ReplyPathProvided() const;
1.86 - inline void SetReplyPathProvided(TBool aReplyPathProvided);
1.87 -
1.88 - inline TBioMsgIdType BioMsgIdType() const;
1.89 - inline void SetBioMsgIdType(TBioMsgIdType aBioMsgIdType = EBioMsgIdNbs);
1.90 -
1.91 - inline TPtrC ServiceCenterAddress() const;
1.92 - inline void SetServiceCenterAddressL(const TDesC& aAddress);
1.93 -
1.94 - IMPORT_C void SetSmsSettingsL(const CSmsMessageSettings& aSmsSettings);
1.95 - IMPORT_C void GetSmsSettingsL(CSmsMessageSettings& aSmsSettings) const;
1.96 -
1.97 - inline const CArrayPtrFlat<CSmsNumber>& Recipients() const;
1.98 - inline CArrayPtrFlat<CSmsNumber>& Recipients();
1.99 -
1.100 - inline void SetFromAddressL(const TDesC& aAddress);
1.101 - inline TPtrC FromAddress() const;
1.102 -
1.103 - TPtrC ReplyAddressL() const;
1.104 -
1.105 - IMPORT_C void SetEmailFieldsL(const CSmsEmailFields& aEmailFields);
1.106 - void SetReplyEmailFieldsL(const CSmsEmailFields& aEmailFields, const TDesC& aReplySubjectFormat);
1.107 - void SetForwardEmailFieldsL(const CSmsEmailFields& aEmailFields, const TDesC& aForwardSubjectFormat);
1.108 - IMPORT_C const CSmsEmailFields& EmailFields() const;
1.109 -
1.110 - IMPORT_C void InternalizeL( RMsvReadStream& aStream);
1.111 - IMPORT_C void ExternalizeL( RMsvWriteStream& aStream) const;
1.112 -
1.113 - IMPORT_C void RestoreL(CMsvStore& aStore);
1.114 - IMPORT_C void StoreL(CMsvStore& aStore) const;
1.115 -
1.116 - IMPORT_C TBool ContainsSmsHeaderL(const CMsvStore& aStore);
1.117 -
1.118 -private:
1.119 - CSmsHeader(CSmsMessage* aSmsMessage = NULL);
1.120 - void ConstructL(CSmsPDU::TSmsPDUType aType, CEditableText& aText);
1.121 - void ConstructL(CSmsPDU::TSmsPDUType aType, CEditableText& aText, RFs& aFs);
1.122 - void ConstructL();
1.123 -
1.124 - enum TSmsHeaderFlags
1.125 - {
1.126 - ESmsHeaderNoFlags = 0x00,
1.127 - ESmsHeaderReplyPathProvided = 0x01,
1.128 - ESmsHeaderCanConcatenate = 0x02
1.129 - };
1.130 -
1.131 - TBool CanConcatenate() const;
1.132 - void SetCanConcatenate(TBool aCanConcatenate);
1.133 -
1.134 - void SetEmailReplyForwardSubjectL(CSmsEmailFields* aEmailFields, const TDesC& aSubject, const TDesC& aSubjectFormat);
1.135 -
1.136 -private:
1.137 - CArrayPtrFlat<CSmsNumber> iRecipients;
1.138 - CSmsMessage* iMessage;
1.139 - TUint32 iFlags;
1.140 - RFs iFs;
1.141 -
1.142 - // iBioMsgIdType is only used during sending and will be ignored if the
1.143 - // TMsvEntry.iBioType == 0. The default is EBioMsgIdNbs.
1.144 - TBioMsgIdType iBioMsgIdType;
1.145 - CSmsEmailFields* iEmailFields;
1.146 - TBool iCloseFs;
1.147 - };
1.148 -
1.149 -/**
1.150 -A specialisation of the message server index class for SMS message entries.
1.151 -
1.152 -It provides accessers for SMS message specific data, for instance the class type
1.153 -of the SMS message.
1.154 -
1.155 -@publishedPartner
1.156 -@released
1.157 -*/
1.158 -class TMsvSmsEntry : public TMsvEntry
1.159 - {
1.160 -public:
1.161 -
1.162 -/**
1.163 -Defines a set flags used to access message entry data specific to an SMS message.
1.164 -
1.165 -@internalTechnology
1.166 -@released
1.167 -
1.168 -*/
1.169 - enum TMsvSmsEntryFlags
1.170 - {
1.171 -/**
1.172 -Clears the entire set of SMS flags.
1.173 -*/
1.174 - EMsvSmsEntryClearFlag = 0x00000000,
1.175 -/**
1.176 -Mask for the protocol identifier data.
1.177 -*/
1.178 - EMsvSmsEntryProtocolIdentifier = 0x000000FF,
1.179 -/**
1.180 -Mask for the User Prompt Indicator flag.
1.181 -*/
1.182 - EMsvSmsEntryUserPromptIndicator = 0x00000100,
1.183 -/**
1.184 -Mask for the SMS class data.
1.185 -*/
1.186 - EMsvSmsEntryClass = 0x00000E00,
1.187 -/**
1.188 -Mask for the flag indicating whether the class data has been defined.
1.189 -*/
1.190 - EMsvSmsEntryClassDefined = 0x00001000,
1.191 -/**
1.192 -Mask for the flag indicating whether the message ID is valid.
1.193 -*/
1.194 - EMsvSmsMessageValid = 0x00002000,
1.195 -/**
1.196 -Mask for the delivery acknowledgement information.
1.197 -*/
1.198 - EMsvSmsEntryDeliveryAckSummary = 0x0001C000,
1.199 -/**
1.200 -Parameter defining the number of bits to be shifted in order for the SMS class
1.201 -data to be at the LSB of the data block.
1.202 -*/
1.203 - EMsvSmsEntryClassShift = 9,
1.204 -/**
1.205 -Parameter defining the number of bits to be shifted in order for the delivery
1.206 -acknowlwdgement information to be at the LSB of the data block.
1.207 -*/
1.208 - EMsvSmsEntryDeliveryAckSummaryShift = 14
1.209 - };
1.210 -
1.211 -/**
1.212 -Defines the summary acknowledgement information.
1.213 -
1.214 -This information indicates whether the SMS message is not supplying a summary
1.215 -for an acknowledgement, is still expecting acknowledgments or it has received
1.216 -all expected acknowledgements.
1.217 -
1.218 -If all acknowledgements have been received the summary indicates whether all
1.219 -the recipients have successfully acknowledged the message, all failed or there
1.220 -was a mixture of successful and failed acknowledgements from the recipients.
1.221 -*/
1.222 - enum TMsvSmsEntryAckSummary
1.223 - {
1.224 -/**
1.225 -No summary information is being formed.
1.226 -*/
1.227 - ENoAckSummary = 0,
1.228 -/**
1.229 -The message is waiting for acknowledgements to be received for all recipients
1.230 -of this message. Some recipients may have received their acknowledgements but
1.231 -there are still some recipients that have not.
1.232 -*/
1.233 - EPendingAcks,
1.234 -/**
1.235 -The summary indicates that the message was successfully acknowledged by all recipients.
1.236 -*/
1.237 - EAllSuccessful,
1.238 -/**
1.239 -The summary indicates that the message failed to be acknowledged by all recipients.
1.240 -*/
1.241 - EAllFailed,
1.242 -/**
1.243 -The summary indicates a mixture of successful and failed acknowledgements from
1.244 -the recipients of the message. All recipients of this message have received
1.245 -their acknowledgements.
1.246 -*/
1.247 - EMixed
1.248 - };
1.249 -
1.250 -public:
1.251 - inline TMsvSmsEntry();
1.252 - inline TMsvSmsEntry(const TMsvEntry& aEntry);
1.253 -
1.254 - inline void SetUserPromptIndicator(TBool aUPI);
1.255 - inline TBool UserPromptIndicator() const;
1.256 -
1.257 - inline TUint8 ProtocolIdentifier() const;
1.258 - inline void SetProtocolIdentifier(TSmsProtocolIdentifier aPID);
1.259 - inline void SetProtocolIdentifier(TUint8 aPID);
1.260 -
1.261 - inline TBool Class(TSmsDataCodingScheme::TSmsClass& aClass) const;
1.262 - inline void SetClass(TBool aClassDefined,TSmsDataCodingScheme::TSmsClass aClass = TSmsDataCodingScheme::ESmsClass0);
1.263 -
1.264 - IMPORT_C TMsvSmsEntryAckSummary AckSummary(TSmsAckType aAckType) const;
1.265 - IMPORT_C void SetAckSummary(TSmsAckType aAckType, TMsvSmsEntryAckSummary aAckSummary);
1.266 -
1.267 - IMPORT_C TBool MessageId(TInt32& aMessageId) const;
1.268 - IMPORT_C void SetMessageId(TInt32 aMessageId, TBool aIsValid);
1.269 - };
1.270 -
1.271 -#include <smuthdr.inl>
1.272 -
1.273 -#endif // __SMUTHDR_H__