diff -r 4697dfb2d7ad -r 238255e8b033 messagingappbase/smsmtm/clientmtm/inc/SMUTHDR.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/smsmtm/clientmtm/inc/SMUTHDR.H Fri Apr 16 14:56:15 2010 +0300 @@ -0,0 +1,166 @@ +// 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 "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// SMUTHDR.H +// +/** + * @file + * @publishedAll + * @released + */ +#ifndef __SMUTHDR_H__ +#define __SMUTHDR_H__ + +#include +#include +#include +#include +#include +#include + +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif + +class RMsvReadStream; +class RMsvWriteStream; +class CMsvStore; +class CSmsEmailFields; + +/** +The SMS MTM encapsulation of an SMS message. + +This class allows a messaging client to access the lower-level message encapsulation +used by the SMS stack. + +It also provides functionality to restore and store an SMS message from/to the +message store. + +An SMS message is encapsulated in a Protocol Data Unit (PDU). In GSM there are +six types of SMS message PDU. In the descriptions below, SC means Service Center +and MS means Mobile Station (the phone). + +1. SMS-DELIVER - sent from SC to MS + +2. SMS-DELIVER-REPORT - sent from MS to SC + +3. SMS-SUBMIT - sent from MS to SC + +4. SMS-SUBMIT-REPORT - sent from SC to MS + +5. SMS-STATUS-REPORT - sent from SC to MS + +6. SMS-COMMAND - sent from MS to SC + +@publishedAll +@released +*/ +NONSHARABLE_CLASS (CSmsHeader) : public CBase + { +public: + + IMPORT_C static CSmsHeader* NewL(CSmsPDU::TSmsPDUType aType,CEditableText& aText); + IMPORT_C static CSmsHeader* NewL(CSmsPDU::TSmsPDUType aType,CEditableText& aText,RFs& aFs); + IMPORT_C static CSmsHeader* NewL(CSmsMessage* aMessage); + IMPORT_C ~CSmsHeader(); + + inline CSmsPDU::TSmsPDUType Type() const; + + inline CSmsSubmit& Submit(); + inline const CSmsSubmit& Submit() const; + inline CSmsDeliver& Deliver(); + inline const CSmsDeliver& Deliver() const; + inline CSmsCommand& Command(); + inline const CSmsCommand& Command() const; + inline CSmsStatusReport& StatusReport(); + inline const CSmsStatusReport& StatusReport() const; + + inline CSmsMessage& Message(); + inline const CSmsMessage& Message() const; + + inline TBool ReplyPathProvided() const; + inline void SetReplyPathProvided(TBool aReplyPathProvided); + + inline TBioMsgIdType BioMsgIdType() const; + inline void SetBioMsgIdType(TBioMsgIdType aBioMsgIdType = EBioMsgIdNbs); + + inline TPtrC ServiceCenterAddress() const; + inline void SetServiceCenterAddressL(const TDesC& aAddress); + + IMPORT_C void SetSmsSettingsL(const CSmsMessageSettings& aSmsSettings); + IMPORT_C void GetSmsSettingsL(CSmsMessageSettings& aSmsSettings) const; + + inline const CArrayPtrFlat& Recipients() const; + inline CArrayPtrFlat& Recipients(); + + inline void SetFromAddressL(const TDesC& aAddress); + inline TPtrC FromAddress() const; + + TPtrC ReplyAddressL() const; + + IMPORT_C void SetEmailFieldsL(const CSmsEmailFields& aEmailFields); + void SetReplyEmailFieldsL(const CSmsEmailFields& aEmailFields, const TDesC& aReplySubjectFormat); + void SetForwardEmailFieldsL(const CSmsEmailFields& aEmailFields, const TDesC& aForwardSubjectFormat); + IMPORT_C const CSmsEmailFields& EmailFields() const; + + IMPORT_C void InternalizeL( RMsvReadStream& aStream); + IMPORT_C void ExternalizeL( RMsvWriteStream& aStream) const; + + IMPORT_C void RestoreL(CMsvStore& aStore); + IMPORT_C void StoreL(CMsvStore& aStore) const; + + IMPORT_C TBool ContainsSmsHeaderL(const CMsvStore& aStore); + + +private: + CSmsHeader(CSmsMessage* aSmsMessage = NULL); + void ConstructL(CSmsPDU::TSmsPDUType aType, CEditableText& aText); + void ConstructL(CSmsPDU::TSmsPDUType aType, CEditableText& aText, RFs& aFs); + void ConstructL(); + + enum TSmsHeaderFlags + { + ESmsHeaderNoFlags = 0x00, + ESmsHeaderReplyPathProvided = 0x01, + ESmsHeaderCanConcatenate = 0x02 + }; + + TBool CanConcatenate() const; + void SetCanConcatenate(TBool aCanConcatenate); + + void SetEmailReplyForwardSubjectL(CSmsEmailFields* aEmailFields, const TDesC& aSubject, const TDesC& aSubjectFormat); + +#if (defined SYMBIAN_MESSAGESTORE_HEADER_BODY_USING_SQLDB) + void StoreDbL(CMsvStore& aStore) const; + void ReStoreDBL(CMsvStore& aStore); + void GetRecipientL(TDesC16& aRecipientStrList); + TInt ConvertToTInt(TDesC16& aStr); +#endif + +private: + CArrayPtrFlat iRecipients; + CSmsMessage* iMessage; + TUint32 iFlags; + RFs iFs; + + // iBioMsgIdType is only used during sending and will be ignored if the + // TMsvEntry.iBioType == 0. The default is EBioMsgIdNbs. + TBioMsgIdType iBioMsgIdType; + CSmsEmailFields* iEmailFields; + TBool iCloseFs; + }; + +#include + +#endif // __SMUTHDR_H__ +