--- a/messagingappbase/smsmtm/clientmtm/inc/SMUTSET.H Fri Apr 16 14:56:15 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,761 +0,0 @@
-// 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:
-// SMUTSET.H
-//
-/**
- * @file
- * @publishedAll
- * @released
- */
-#ifndef __SMUTSET_H__
-#define __SMUTSET_H__
-
-#include <gsmumsg.h>
-#include <msvrcpt.h>
-#include <msvstore.h>
-#include <logwrap.h>
-
-class CSmsServiceCenter;
-class CSmsEmailFields;
-
-// Both the recipient's number and SC number (TP-Destination-Address and RP-Destination-Address)
-// can be 12 octets which means that there can be 21 characters (including + sign) in the number string.
-
-/**
-The maximum length of recipient's number.
-
-The number returned by CSmsNumber::Address() and CSmsServiceCenter::Address() is limited this maximum length.
-
-@see CSmsNumber::Address
-@see CSmsServiceCenter::Address
-
-@publishedAll
-@released
-*/
-const TInt KSmcmSmsNumberMaxNumberLength = 21;
-
-/**
-The maximum length of recipient's name.
-
-The number returned by CSmsNumber::Name() and CSmsServiceCenter::Name() is limited this maximum length.
-
-@see CSmsNumber::Name
-@see CSmsServiceCenter::Name
-
-@publishedAll
-@released
-*/
-const TInt KSmcmSmsNumberMaxNameLength = 256;
-
-/**
-Defines the possible forms in which an SMS message should be delivered to the
-recipient by the service centre.
-
-The specified format may or may not actually be supported by the service centre.
-Note that the format of the recipient address(es) may need to be different
-to a normal telephone number if the conversion is set to any other value than
-ESmsConvPIDNone, ESmsConvFax, ESmsConvPaging or ESmsConvErmes.
-
-@publishedAll
-@released
-*/
-enum TSmsPIDConversion
- {
-/**
-No conversion (i.e. use SMS itself).
-*/
- ESmsConvPIDNone = TSmsProtocolIdentifier::ESmsNoTelematicDevice,
-/**
-Convert to fax.
-*/
- ESmsConvFax = TSmsProtocolIdentifier::ESmsGroup3TeleFax,
-/**
-Convert to X.400.
-*/
- ESmsConvX400 = TSmsProtocolIdentifier::ESmsX400MessageHandlingSystem,
-/**
-Convert to pager message.
-*/
- ESmsConvPaging = TSmsProtocolIdentifier::ESmsNationalPagingSystem,
-/**
-Convert to Internet email.
-*/
- ESmsConvMail = TSmsProtocolIdentifier::ESmsInternetElectronicMail,
-/**
-Convert to ERMES paging.
-*/
- ESmsConvErmes = TSmsProtocolIdentifier::ESmsERMES,
-/**
-Convert to sppech.
-*/
- ESmsConvSpeech = TSmsProtocolIdentifier::ESmsVoiceTelephone
- };
-
-/**
-Defines the set of possible validity periods for mobile originated messages.
-
-Mobile originated messages have a PDU type of SMS-SUBMIT.
-
-@publishedAll
-@released
-*/
-enum TSmcmValidityPeriod
- {
-/**
-Validity period of an hour.
-*/
- ESmsVPHour = TSmsValidityPeriod::EHalfHourUnitInMinutes*2,
-/**
-Validity period of six hours.
-*/
- ESmsVPSixHours = TSmsValidityPeriod::EHalfHourUnitInMinutes*12,
-/**
-Validity period of 24 hours.
-*/
- ESmsVP24Hours = TSmsValidityPeriod::EOneDayUnitInMinutes,
-/**
-Validity period of a week.
-*/
- ESmsVPWeek = TSmsValidityPeriod::EOneWeekUnitInMinutes,
-/**
-The maximum validity period - currently set as 63 weeks.
-*/
- ESmsVPMaximum = TSmsValidityPeriod::EOneWeekUnitInMinutes*63,
-/**
-An enum that specifies that a validity period is not supported.
-*/
- ESmsVPNotSupported = KErrNotSupported,
-/**
-The default validy period - currently set to a week.
-*/
- ESmsVPDefault = ESmsVPWeek
- };
-
-/**
-Defines options for the preferred default sending schedule type of a new message
-created using the SMS client MTM.
-
-The option has no direct effect on the SMS MTM. When it is sending an SMS
-message it automatically appends other SMS messages in the outbox whose send
-states are marked as KMsvSendStatewaiting or KMsvSendSateUnknown.
-
-Therefore it is the responsibility of the messaging client to set the correct
-send state of new SMS messages correctly given the preferred sending schedule.
-
-@publishedAll
-@released
-*/
-enum TSmsDelivery
- {
-/**
-Send message immediately. The message send state should be set to KMsvSendStateWaiting.
-*/
- ESmsDeliveryImmediately,
-/**
-Send message when client requests. The message send state should be set to KMsvSendStateUponRequest.
-*/
- ESmsDeliveryUponRequest,
-/**
-Send message at scheduled time. The message send state should be set to KMsvSendStateScheduled.
-*/
- ESmsDeliveryScheduled
- };
-
-/**
-Defines the flags and masks for some of the message settings.
-
-The settings classes CSmsMessageSettings and CSmsSettings use these flags to
-store the specified information.
-
-@publishedAll
-@released
-*/
-enum TSmsSettingsFlags
- {
-/**
-Mask that resets the flags.
-*/
- ESmsSettingsNoFlags =0x00000000,
-/**
-Flag that indicates if messages can be concatenated.
-
-If true, the UI should pass a long message in one piece to the MTM. If false,
-it should split the message manually into 140 byte parts. The value of this
-flag does not affect the behaviour of the SMS MTM.
-*/
- ESmsSettingsCanConcatenate =0x00000001,
-/**
-Flag that indicates whether the original message should be included in relpy
-messages.
-
-If true, the received message should be quoted at the beginning of the reply
-message. If false, reply messages should be initially empty.
-*/
- ESmsSettingsReplyQuoted =0x00000002,
-/**
-Flag that indicates whether duplicate messages should be rejected.
-*/
- ESmsSettingsRejectDuplicate =0x00000004,
-/**
-Flag that indicates if a status report (TP-SRR in GSM spec 03.40) should be
-requested from the Service Centre.
-*/
- ESmsSettingsDeliveryReport =0x00000008,
-/**
-Flag that indicates if the reply path (Service Centre address) should be included
-in the delivered message (TP-RP in GSM spec 03.40).
-*/
- ESmsSettingsReplyPathRequested =0x00000010,
-/**
-Flag that indicates if a status report (TP-SRR in GSM spec 03.40) for the last segment
-should be requested from the Service Centre.
-*/
- ESmsSettingsLastSegmentDeliveryReport =0x00000020 ,
-
-/**
-Flag that indicates if a status report (TP-SRR in GSM spec 03.40) for the last segment
-is not requested from the Service Centre.
-*/
- ENoSmsSettingsLastSegmentDeliveryReport =0x00000040,
-/**
-Flag that indicates that the service center time stamp should be used for the date
-field in any TMsvEntry that corresponds to a SMS message.
-*/
- ESmsSettingsUseServiceCenterTimeStamp =0x00000080,
-/**
-Flag that indicates if message received from unknown port,
-discard the message without indicating the user.
-*/
- ESmsSettingsDiscardUnknownPortMsgs =0x00000100,
-/**
-Mask for the set of flags defined.
-*/
- ESmsSettingsMask =0x000000FF,
- };
-
-
-/**
-Defines the types of acknowledgements that can be received from recipients.
-*/
-enum TSmsAckType
- {
-/**
-Acknowlwdgement of delivery to a recipient.
-*/
- ESmsAckTypeDelivery =0
- };
-
-/**
-Progress information for SMS MTM operations.
-
-This information is returned by CMsvOperation::ProgressL() in a TSmsProgressBuf
-package.
-
-@see CMsvOperation::ProgressL
-
-@publishedAll
-@released
-*/
-class TSmsProgress
- {
-public:
-/**
-Defines type of operation for which progress information is being given.
-
-These types correspond to the commands defined in TSmsMtmCommand.
-
-@see TSmsMtmCommand
-*/
- enum TSmsProgressType
- {
-/**
-The default operation type - no operation.
-*/
- ESmsProgressTypeDefault,
-/**
-Reading SIM parameters.
-
-Pre v7.0, this was named ESmsProgressTypeReadingServiceCenterAddress.
-*/
- ESmsProgressTypeReadSimParams,
-/**
-Writing SIM parameters.
-
-Pre v7.0 this was named ESmsProgressTypeWritingServiceCenterAddress.
-*/
- ESmsProgressTypeWriteSimParams,
-/**
-Sending messages.
-*/
- ESmsProgressTypeSending,
-/**
-Scheduling sending messages.
-*/
- ESmsProgressTypeScheduling,
-/**
-Enumerating phone stores.
-
-Pre v7.0, this was named ESmsProgressTypeEnumeratingSim.
-*/
- ESmsProgressTypeEnumeratingPhoneStores,
-/**
-Copying messages from phone stores.
-
-Pre v7.0, this was named ESmsProgressTypeCopyFromSim.
-*/
- ESmsProgressTypeCopyFromPhoneStore,
-/**
-Moving messages from phone stores.
-
-Pre v7.0, this was named ESmsProgressTypeMoveFromSim.
-*/
- ESmsProgressTypeMoveFromPhoneStore,
-/**
-Deleting messages from phone stores.
-
-Pre v7.0, this was named ESmsProgressTypeDeleteFromSim.
-*/
- ESmsProgressTypeDeleteFromPhoneStore,
-/**
-Removing all messages from the task scheduler list.
-*/
- ESmsProgressTypeDeleteSchedule,
-/**
-Checking the current scheduled status of the messages.
-*/
- ESmsProgressTypeCheckSchedule,
-/**
-Recursively deleting messages.
-*/
- ESmsProgressTypeDeleteAll,
-/**
-Copying messages to a phone store.
-
-Pre v7.0, this was named ESmsProgressTypeCopyToSim.
-*/
- ESmsProgressTypeCopyToPhoneStore,
-/**
-Moving messages to a phone store.
-
-Pre v7.0, this was named ESmsProgressTypeMoveToSim.
-*/
- ESmsProgressTypeMoveToPhoneStore,
-/**
-Moving message entries.
-
-This is the second part of ESmsProgressTypeMoveFromPhoneStore. The first part
-deletes the messages from the phone storageSIM. This second part moves the
-messages from the folder that represents the phone storage to the specified
-destination.
-*/
- ESmsProgressTypeMovingEntries
- };
-
- inline TSmsProgress(TSmsProgressType aType = ESmsProgressTypeDefault);
-
-public:
-
-/**
-The error code.
-*/
- TInt iError;
-/**
-The type of operation.
-
-@see TSmsProgress::TSmsProgressType
-*/
- TSmsProgressType iType;
-/**
-The state of the operation.
-*/
- TInt iState;
-/**
-The number of recipients processed so far for the current message.
-*/
- TInt iRcpDone;
-/**
-The total number of recipients in the current message.
-*/
- TInt iRcpCount;
-/**
-The nmber of messages processed so far for the current operation.
-*/
- TInt iMsgDone;
-/**
-The total number of messages for the current operation.
-*/
- TInt iMsgCount;
-/**
-The Service Centre address.
-
-This is set by the command ESmsMtmCommandReadServiceCenter.
-
-@removed
-This is no longer used since v7.0.
-*/
- TBuf<14> iServiceCenterAddress;
-/**
-The invisible folder that contains the messages read from the SIM by the command
-ESmsMtmCommandEnumeratePhoneStores.
-*/
- TMsvId iEnumerateFolder;
- };
-
-/**
-Package buffer for TSmsProgress.
-
-@see TSmsProgress
-
-@publishedAll
-@released
-*/
-typedef TPckgBuf<TSmsProgress> TSmsProgressBuf;
-
-
-/**
-The SMS settings that are relevant on a per message basis.
-
-Each SMS message has its own settings. Initially they have a default set of
-values derived from the SMS service settings. They can be changed on an
-individual message basis. For instance, a messaging application may allow a
-user to specify/not specify status reports individually for each message.
-
-These settings are only relevant to mobile originated messages - those of
-SMS-SUBMIT type.
-
-@publishedAll
-@released
-*/
-class CSmsMessageSettings : public CBase
- {
-public:
- IMPORT_C virtual void InternalizeL(RReadStream& aReadStream);
- IMPORT_C virtual void ExternalizeL(RWriteStream& aWriteStream) const;
-
- inline const TTimeIntervalMinutes& ValidityPeriod() const;
- inline void SetValidityPeriod(TTimeIntervalMinutes);
-
- inline void SetValidityPeriodFormat(TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat);
- inline const TSmsFirstOctet::TSmsValidityPeriodFormat ValidityPeriodFormat() const;
-
- inline TBool RejectDuplicate() const;
- inline void SetRejectDuplicate(TBool);
-
- inline TBool DeliveryReport() const;
- inline void SetDeliveryReport(TBool);
-
- inline TBool ReplyPath() const;
- inline void SetReplyPath(TBool);
-
- inline TSmsPIDConversion MessageConversion() const;
- inline void SetMessageConversion(TSmsPIDConversion);
-
- inline TBool CanConcatenate() const;
- inline void SetCanConcatenate(TBool);
-
- inline enum TSmsDataCodingScheme::TSmsAlphabet CharacterSet() const;
- inline void SetCharacterSet(TSmsDataCodingScheme::TSmsAlphabet);
-
- IMPORT_C virtual void CopyL(const CSmsMessageSettings& aSettings);
-
- TUint32 MessageFlags() const;
- void SetMessageFlags(TUint32 aMsgFlags);
- inline TBool LastSegmentDeliveryReport() const;
- inline void SetLastSegmentDeliveryReport(TBool);
-
- inline void SetUseServiceCenterTimeStampForDate(TBool aUseServiceCenterTimestamp);
- inline TBool UseServiceCenterTimeStampForDate() const;
-
-protected:
-
- CSmsMessageSettings();
-
-private:
-
- TUint32 iMsgFlags;
- TSmsPIDConversion iMessageConversion;
- TSmsDataCodingScheme::TSmsAlphabet iAlphabet;
- TTimeIntervalMinutes iValidityPeriod;
- TSmsFirstOctet::TSmsValidityPeriodFormat iValidityPeriodFormat;
- };
-
-/**
-The SMS Service settings.
-
-An SMS service entry stores an object of this type in its message store. These
-settings define the default settings for mobile originated messages (SMS-SUBMIT
-type messages). They also provide some global settings that are applied to all
-messages, both outward going and received messages.
-
-The SMS service also uses this class to store the set of avilable Servive Centre
-numbers. The default Service Centre is defined from this set.
-
-@publishedAll
-@released
-*/
-class CSmsSettings : public CSmsMessageSettings
- {
-public:
-
-/**
-Defines the ways in which status reports that are received by the watcher may
-be handled.
-
-This can be applied to both SMS-STATUS-REPORT type messages and Special Messages
-(e.g. Voice Mail Indication messages).
-*/
- enum TSmsReportHandling
- {
-/**
-The reports are put in the inbox and made invisible.
-*/
- EMoveReportToInboxInvisible,
-/**
-The reports are put in the inbox and made visible.
-*/
- EMoveReportToInboxVisible,
-/**
-The reports are deleted.
-*/
- EDiscardReport,
-/**
-Not supported.
-*/
- EDoNotWatchForReport,
-/**
-Reports are put in the inbox and made invisible. The status report
-is matched against the sent mesasge and its summary info updated.
-*/
- EMoveReportToInboxInvisibleAndMatch,
-/**
-Reports are put in the inbox and made visible. The status report
-is matched against the sent mesasge and its summary info updated.
-*/
- EMoveReportToInboxVisibleAndMatch,
-/**
-Reports are deleted. The status report is matched against the sent
-mesasge and its summary info updated.
-*/
- EDiscardReportAndMatch
- };
-
-/**
-Sets whether the service settings should be used to update the communications
-database.
-
-If the update is specified, it is done when the Service settings are stored into
-the message store.
-*/
- enum TSmsSettingsCommDbAction
- {
-/**
-The comms database should not be updated.
-*/
- ENone,
-/**
-Use the Service settings to update the comms datebase.
-*/
- EStoreToCommDb
- };
-
-/** Defines the SMS bearer.
-Modes: GSM */
-enum TMobileSmsBearer
- {
- /** SMS messages will only be sent over a packet-switched (GPRS) network. */
- ESmsBearerPacketOnly,
- /** SMS messages will only be sent over a circuit-switched (GSM) network. */
- ESmsBearerCircuitOnly,
- /** SMS messages will be sent over the packet-switched (GPRS) network if possible,
- otherwise over circuit-switched (GSM) network. */
- ESmsBearerPacketPreferred,
- /** SMS messages will be sent over the circuit-switched (GSM) network if possible,
- otherwise over packet-switched (GPRS) network. */
- ESmsBearerCircuitPreferred
- };
-
-public:
-
- IMPORT_C static CSmsSettings* NewL();
- IMPORT_C static CSmsSettings* NewLC();
- IMPORT_C virtual ~CSmsSettings();
-
- IMPORT_C TInt ServiceCenterCount() const;
- IMPORT_C CSmsServiceCenter& GetServiceCenter(TInt aIndex) const;
- IMPORT_C void AddServiceCenterL(const TDesC& aName,const TDesC& aNumber);
- IMPORT_C void RemoveServiceCenter(TInt aIndex);
- IMPORT_C TInt DefaultServiceCenter() const;
- IMPORT_C void SetDefaultServiceCenter(TInt aDefaultSC);
- inline TSmsDelivery Delivery() const;
- inline void SetDelivery(TSmsDelivery);
-
- inline TBool ReplyQuoted() const;
- inline void SetReplyQuoted(TBool);
-
- IMPORT_C void CopyL(const CSmsSettings& aSmsSettings);
-
- inline TSmsReportHandling StatusReportHandling() const;
- inline void SetStatusReportHandling(TSmsReportHandling aStatusReportHandling);
- inline TSmsReportHandling SpecialMessageHandling() const;
- inline void SetSpecialMessageHandling(TSmsReportHandling aSpecialMessageHandling);
-
- inline void SetCommDbAction(TSmsSettingsCommDbAction aCommDbAction);
- inline TSmsSettingsCommDbAction CommDbAction() const;
-
- inline void SetSmsBearerAction(TSmsSettingsCommDbAction aSmsBearerAction);
- inline TSmsSettingsCommDbAction SmsBearerAction() const;
-
- inline void SetSmsBearer(TMobileSmsBearer aSmsBearer);
- inline TMobileSmsBearer SmsBearer() const;
-
- inline void SetClass2Folder(TMsvId aId);
- inline TMsvId Class2Folder() const;
-
- inline void SetDescriptionLength(TInt aLength);
- inline TInt DescriptionLength() const;
-
- inline TBool DiscardUnknownPortMessage() const;
- inline void SetDiscardUnknownPortMessage(TBool aDeleteMessage);
- TUint32 SettingsFlags() const;
- void SetSettingsFlags(TUint32 aSetFlags);
-
- void RemoveSCAddresses();
- void StoreToCommDbL() const;
-
-private:
-
- CSmsSettings();
- void ConstructL();
-
-private:
-
- TUint32 iSetFlags;
- CArrayPtrFlat<CSmsServiceCenter> *iServiceCenters;
- TSmsDelivery iDelivery;
- TInt iDefaultSC;
- TSmsReportHandling iStatusReportHandling;
- TSmsReportHandling iSpecialMessageHandling;
- TSmsSettingsCommDbAction iCommDbAction;
- TSmsSettingsCommDbAction iSmsBearerAction;
- TMobileSmsBearer iSmsBearer;
- TMsvId iClass2Folder;
- TInt iDescriptionLength;
- };
-
-/**
-Recipient information for an SMS message.
-
-A SMS-SUBMIT message may have several recipients
-
-@publishedAll
-@released
-*/
-class CSmsNumber : public CMsvRecipient
- {
-public:
-
-/**
-Defines the status of an acknowledgement for a recipient.
-*/
- enum TSmsAckStatus
- {
-/**
-An acknowledgement for this recipient has not been requested.
-*/
- ENoAckRequested = 0,
-/**
-The delivery status for this recipient has been requested, but the status report
-has not yet been received.
-*/
- EPendingAck,
-/**
-A successful acknowledgement for this recipient has been received.
-*/
- EAckSuccessful,
-/**
-A failed acknowledgement for this recipient has been received.
-*/
- EAckError
- };
-
-public:
-
- IMPORT_C static CSmsNumber* NewL();
- IMPORT_C static CSmsNumber* NewL(const CSmsNumber& aSmsNumber);
- IMPORT_C virtual ~CSmsNumber();
-
- IMPORT_C void InternalizeL(RReadStream& aStream);
- IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
-
- IMPORT_C TPtrC Address() const;
- IMPORT_C void SetAddressL(const TDesC& aAddress);
- void SetEmailAddressL(const TDesC& aAddress, CSmsEmailFields* aEmailFields, const TDesC& aAlias);
-
- IMPORT_C TPtrC Name() const;
- IMPORT_C void SetNameL(const TDesC& aName);
-
- inline TLogId LogId() const;
- inline void SetLogId(TLogId aLogId);
-
- IMPORT_C CSmsNumber& CopyL(const CSmsNumber& aSmsNumber);
-
- IMPORT_C TSmsAckStatus AckStatus(TSmsAckType aAckType) const;
- IMPORT_C void SetAckStatus(TSmsAckType aAckType, TSmsAckStatus aAckStatus);
-
-private:
-
- CSmsNumber();
- TPtrC LimitStringSize(const TPtrC& aString, TInt aMaxLength) const;
-
-private:
-
- HBufC* iNumber;
- HBufC* iName;
- TLogId iLogId;
- TSmsAckStatus iDeliveryStatus;
- };
-
-/**
-Used to store Service Centre numbers and their associated name.
-
-@publishedAll
-@released
-*/
-NONSHARABLE_CLASS (CSmsServiceCenter) : public CBase
- {
-public:
- IMPORT_C static CSmsServiceCenter* NewL();
- IMPORT_C static CSmsServiceCenter* NewL(const CSmsServiceCenter& aSmsSC);
- IMPORT_C ~CSmsServiceCenter();
-
- IMPORT_C TPtrC Address() const;
- IMPORT_C void SetAddressL(const TDesC& aAddress);
-
- IMPORT_C TPtrC Name() const;
- IMPORT_C void SetNameL(const TDesC& aName);
-
- IMPORT_C CSmsServiceCenter& CopyL(const CSmsServiceCenter& aSmsSc);
-
-private:
- CSmsServiceCenter();
- TPtrC LimitStringSize(const TPtrC& aString, TInt aMaxLength) const;
-
-private:
- HBufC* iNumber;
- HBufC* iName;
- };
-
-#include <smutset.inl>
-
-#endif // __SMUTSET_H__