1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/app/smutset.h Wed Mar 31 12:27:01 2010 +0100
1.3 @@ -0,0 +1,752 @@
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 __SMUTSET_H__
1.20 +#define __SMUTSET_H__
1.21 +
1.22 +
1.23 +
1.24 +
1.25 +#include <gsmumsg.h>
1.26 +#include <msvrcpt.h>
1.27 +#include <msvstore.h>
1.28 +#include <logwrap.h>
1.29 +
1.30 +class CSmsServiceCenter;
1.31 +class CSmsEmailFields;
1.32 +
1.33 +// Both the recipient's number and SC number (TP-Destination-Address and RP-Destination-Address)
1.34 +// can be 12 octets which means that there can be 21 characters (including + sign) in the number string.
1.35 +
1.36 +/**
1.37 +The maximum length of recipient's number.
1.38 +
1.39 +The number returned by CSmsNumber::Address() and CSmsServiceCenter::Address() is limited this maximum length.
1.40 +
1.41 +@see CSmsNumber::Address
1.42 +@see CSmsServiceCenter::Address
1.43 +
1.44 +@publishedAll
1.45 +@released
1.46 +*/
1.47 +const TInt KSmcmSmsNumberMaxNumberLength = 21;
1.48 +
1.49 +/**
1.50 +The maximum length of recipient's name.
1.51 +
1.52 +The number returned by CSmsNumber::Name() and CSmsServiceCenter::Name() is limited this maximum length.
1.53 +
1.54 +@see CSmsNumber::Name
1.55 +@see CSmsServiceCenter::Name
1.56 +
1.57 +@publishedAll
1.58 +@released
1.59 +*/
1.60 +const TInt KSmcmSmsNumberMaxNameLength = 256;
1.61 +
1.62 +/**
1.63 +Defines the possible forms in which an SMS message should be delivered to the
1.64 +recipient by the service centre.
1.65 +
1.66 +The specified format may or may not actually be supported by the service centre.
1.67 +Note that the format of the recipient address(es) may need to be different
1.68 +to a normal telephone number if the conversion is set to any other value than
1.69 +ESmsConvPIDNone, ESmsConvFax, ESmsConvPaging or ESmsConvErmes.
1.70 +
1.71 +@publishedAll
1.72 +@released
1.73 +*/
1.74 +enum TSmsPIDConversion
1.75 + {
1.76 +/**
1.77 +No conversion (i.e. use SMS itself).
1.78 +*/
1.79 + ESmsConvPIDNone = TSmsProtocolIdentifier::ESmsNoTelematicDevice,
1.80 +/**
1.81 +Convert to fax.
1.82 +*/
1.83 + ESmsConvFax = TSmsProtocolIdentifier::ESmsGroup3TeleFax,
1.84 +/**
1.85 +Convert to X.400.
1.86 +*/
1.87 + ESmsConvX400 = TSmsProtocolIdentifier::ESmsX400MessageHandlingSystem,
1.88 +/**
1.89 +Convert to pager message.
1.90 +*/
1.91 + ESmsConvPaging = TSmsProtocolIdentifier::ESmsNationalPagingSystem,
1.92 +/**
1.93 +Convert to Internet email.
1.94 +*/
1.95 + ESmsConvMail = TSmsProtocolIdentifier::ESmsInternetElectronicMail,
1.96 +/**
1.97 +Convert to ERMES paging.
1.98 +*/
1.99 + ESmsConvErmes = TSmsProtocolIdentifier::ESmsERMES,
1.100 +/**
1.101 +Convert to sppech.
1.102 +*/
1.103 + ESmsConvSpeech = TSmsProtocolIdentifier::ESmsVoiceTelephone
1.104 + };
1.105 +
1.106 +/**
1.107 +Defines the set of possible validity periods for mobile originated messages.
1.108 +
1.109 +Mobile originated messages have a PDU type of SMS-SUBMIT.
1.110 +
1.111 +@publishedAll
1.112 +@released
1.113 +*/
1.114 +enum TSmcmValidityPeriod
1.115 + {
1.116 +/**
1.117 +Validity period of an hour.
1.118 +*/
1.119 + ESmsVPHour = TSmsValidityPeriod::EHalfHourUnitInMinutes*2,
1.120 +/**
1.121 +Validity period of six hours.
1.122 +*/
1.123 + ESmsVPSixHours = TSmsValidityPeriod::EHalfHourUnitInMinutes*12,
1.124 +/**
1.125 +Validity period of 24 hours.
1.126 +*/
1.127 + ESmsVP24Hours = TSmsValidityPeriod::EOneDayUnitInMinutes,
1.128 +/**
1.129 +Validity period of a week.
1.130 +*/
1.131 + ESmsVPWeek = TSmsValidityPeriod::EOneWeekUnitInMinutes,
1.132 +/**
1.133 +The maximum validity period - currently set as 63 weeks.
1.134 +*/
1.135 + ESmsVPMaximum = TSmsValidityPeriod::EOneWeekUnitInMinutes*63,
1.136 +/**
1.137 +An enum that specifies that a validity period is not supported.
1.138 +*/
1.139 + ESmsVPNotSupported = KErrNotSupported,
1.140 +/**
1.141 +The default validy period - currently set to a week.
1.142 +*/
1.143 + ESmsVPDefault = ESmsVPWeek
1.144 + };
1.145 +
1.146 +/**
1.147 +Defines options for the preferred default sending schedule type of a new message
1.148 +created using the SMS client MTM.
1.149 +
1.150 +The option has no direct effect on the SMS MTM. When it is sending an SMS
1.151 +message it automatically appends other SMS messages in the outbox whose send
1.152 +states are marked as KMsvSendStatewaiting or KMsvSendSateUnknown.
1.153 +
1.154 +Therefore it is the responsibility of the messaging client to set the correct
1.155 +send state of new SMS messages correctly given the preferred sending schedule.
1.156 +
1.157 +@publishedAll
1.158 +@released
1.159 +*/
1.160 +enum TSmsDelivery
1.161 + {
1.162 +/**
1.163 +Send message immediately. The message send state should be set to KMsvSendStateWaiting.
1.164 +*/
1.165 + ESmsDeliveryImmediately,
1.166 +/**
1.167 +Send message when client requests. The message send state should be set to KMsvSendStateUponRequest.
1.168 +*/
1.169 + ESmsDeliveryUponRequest,
1.170 +/**
1.171 +Send message at scheduled time. The message send state should be set to KMsvSendStateScheduled.
1.172 +*/
1.173 + ESmsDeliveryScheduled
1.174 + };
1.175 +
1.176 +/**
1.177 +Defines the flags and masks for some of the message settings.
1.178 +
1.179 +The settings classes CSmsMessageSettings and CSmsSettings use these flags to
1.180 +store the specified information.
1.181 +
1.182 +@internalComponent
1.183 +@released
1.184 +*/
1.185 +enum TSmsSettingsFlags
1.186 + {
1.187 +/**
1.188 +Mask that resets the flags.
1.189 +*/
1.190 + ESmsSettingsNoFlags =0,
1.191 +/**
1.192 +Flag that indicates if messages can be concatenated.
1.193 +
1.194 +If true, the UI should pass a long message in one piece to the MTM. If false,
1.195 +it should split the message manually into 140 byte parts. The value of this
1.196 +flag does not affect the behaviour of the SMS MTM.
1.197 +*/
1.198 + ESmsSettingsCanConcatenate =0x00000001,
1.199 +/**
1.200 +Flag that indicates whether the original message should be included in relpy
1.201 +messages.
1.202 +
1.203 +If true, the received message should be quoted at the beginning of the reply
1.204 +message. If false, reply messages should be initially empty.
1.205 +*/
1.206 + ESmsSettingsReplyQuoted =0x00000002,
1.207 +/**
1.208 +Flag that indicates whether duplicate messages should be rejected.
1.209 +*/
1.210 + ESmsSettingsRejectDuplicate =0x00000004,
1.211 +/**
1.212 +Flag that indicates if a status report (TP-SRR in GSM spec 03.40) should be
1.213 +requested from the Service Centre.
1.214 +*/
1.215 + ESmsSettingsDeliveryReport =0x00000008,
1.216 +/**
1.217 +Flag that indicates if the reply path (Service Centre address) should be included
1.218 +in the delivered message (TP-RP in GSM spec 03.40).
1.219 +*/
1.220 + ESmsSettingsReplyPathRequested =0x00000010,
1.221 +/**
1.222 +Flag that indicates if a status report (TP-SRR in GSM spec 03.40) for the last segment
1.223 +should be requested from the Service Centre.
1.224 +*/
1.225 + ESmsSettingsLastSegmentDeliveryReport =0x00000020 ,
1.226 +
1.227 +/**
1.228 +Flag that indicates if a status report (TP-SRR in GSM spec 03.40) for the last segment
1.229 +is not requested from the Service Centre.
1.230 +*/
1.231 + ENoSmsSettingsLastSegmentDeliveryReport =0x00000040,
1.232 +/**
1.233 +Flag that indicates that the service center time stamp should be used for the date
1.234 +field in any TMsvEntry that corresponds to a SMS message.
1.235 +*/
1.236 + ESmsSettingsUseServiceCenterTimeStamp =0x00000080,
1.237 +/**
1.238 +Mask for the set of flags defined.
1.239 +*/
1.240 + ESmsSettingsMask =0x000000FF,
1.241 + };
1.242 +
1.243 +
1.244 +/**
1.245 +Defines the types of acknowledgements that can be received from recipients.
1.246 +*/
1.247 +enum TSmsAckType
1.248 + {
1.249 +/**
1.250 +Acknowlwdgement of delivery to a recipient.
1.251 +*/
1.252 + ESmsAckTypeDelivery =0
1.253 + };
1.254 +
1.255 +/**
1.256 +Progress information for SMS MTM operations.
1.257 +
1.258 +This information is returned by CMsvOperation::ProgressL() in a TSmsProgressBuf
1.259 +package.
1.260 +
1.261 +@see CMsvOperation::ProgressL
1.262 +
1.263 +@publishedAll
1.264 +@released
1.265 +*/
1.266 +class TSmsProgress
1.267 + {
1.268 +public:
1.269 +/**
1.270 +Defines type of operation for which progress information is being given.
1.271 +
1.272 +These types correspond to the commands defined in TSmsMtmCommand.
1.273 +
1.274 +@see TSmsMtmCommand
1.275 +*/
1.276 + enum TSmsProgressType
1.277 + {
1.278 +/**
1.279 +The default operation type - no operation.
1.280 +*/
1.281 + ESmsProgressTypeDefault,
1.282 +/**
1.283 +Reading SIM parameters.
1.284 +
1.285 +Pre v7.0, this was named ESmsProgressTypeReadingServiceCenterAddress.
1.286 +*/
1.287 + ESmsProgressTypeReadSimParams,
1.288 +/**
1.289 +Writing SIM parameters.
1.290 +
1.291 +Pre v7.0 this was named ESmsProgressTypeWritingServiceCenterAddress.
1.292 +*/
1.293 + ESmsProgressTypeWriteSimParams,
1.294 +/**
1.295 +Sending messages.
1.296 +*/
1.297 + ESmsProgressTypeSending,
1.298 +/**
1.299 +Scheduling sending messages.
1.300 +*/
1.301 + ESmsProgressTypeScheduling,
1.302 +/**
1.303 +Enumerating phone stores.
1.304 +
1.305 +Pre v7.0, this was named ESmsProgressTypeEnumeratingSim.
1.306 +*/
1.307 + ESmsProgressTypeEnumeratingPhoneStores,
1.308 +/**
1.309 +Copying messages from phone stores.
1.310 +
1.311 +Pre v7.0, this was named ESmsProgressTypeCopyFromSim.
1.312 +*/
1.313 + ESmsProgressTypeCopyFromPhoneStore,
1.314 +/**
1.315 +Moving messages from phone stores.
1.316 +
1.317 +Pre v7.0, this was named ESmsProgressTypeMoveFromSim.
1.318 +*/
1.319 + ESmsProgressTypeMoveFromPhoneStore,
1.320 +/**
1.321 +Deleting messages from phone stores.
1.322 +
1.323 +Pre v7.0, this was named ESmsProgressTypeDeleteFromSim.
1.324 +*/
1.325 + ESmsProgressTypeDeleteFromPhoneStore,
1.326 +/**
1.327 +Removing all messages from the task scheduler list.
1.328 +*/
1.329 + ESmsProgressTypeDeleteSchedule,
1.330 +/**
1.331 +Checking the current scheduled status of the messages.
1.332 +*/
1.333 + ESmsProgressTypeCheckSchedule,
1.334 +/**
1.335 +Recursively deleting messages.
1.336 +*/
1.337 + ESmsProgressTypeDeleteAll,
1.338 +/**
1.339 +Copying messages to a phone store.
1.340 +
1.341 +Pre v7.0, this was named ESmsProgressTypeCopyToSim.
1.342 +*/
1.343 + ESmsProgressTypeCopyToPhoneStore,
1.344 +/**
1.345 +Moving messages to a phone store.
1.346 +
1.347 +Pre v7.0, this was named ESmsProgressTypeMoveToSim.
1.348 +*/
1.349 + ESmsProgressTypeMoveToPhoneStore,
1.350 +/**
1.351 +Moving message entries.
1.352 +
1.353 +This is the second part of ESmsProgressTypeMoveFromPhoneStore. The first part
1.354 +deletes the messages from the phone storageSIM. This second part moves the
1.355 +messages from the folder that represents the phone storage to the specified
1.356 +destination.
1.357 +*/
1.358 + ESmsProgressTypeMovingEntries
1.359 + };
1.360 +
1.361 + inline TSmsProgress(TSmsProgressType aType = ESmsProgressTypeDefault);
1.362 +
1.363 +public:
1.364 +
1.365 +/**
1.366 +The error code.
1.367 +*/
1.368 + TInt iError;
1.369 +/**
1.370 +The type of operation.
1.371 +
1.372 +@see TSmsProgress::TSmsProgressType
1.373 +*/
1.374 + TSmsProgressType iType;
1.375 +/**
1.376 +The state of the operation.
1.377 +*/
1.378 + TInt iState;
1.379 +/**
1.380 +The number of recipients processed so far for the current message.
1.381 +*/
1.382 + TInt iRcpDone;
1.383 +/**
1.384 +The total number of recipients in the current message.
1.385 +*/
1.386 + TInt iRcpCount;
1.387 +/**
1.388 +The nmber of messages processed so far for the current operation.
1.389 +*/
1.390 + TInt iMsgDone;
1.391 +/**
1.392 +The total number of messages for the current operation.
1.393 +*/
1.394 + TInt iMsgCount;
1.395 +/**
1.396 +The Service Centre address.
1.397 +
1.398 +This is set by the command ESmsMtmCommandReadServiceCenter.
1.399 +
1.400 +@removed
1.401 +This is no longer used since v7.0.
1.402 +*/
1.403 + TBuf<14> iServiceCenterAddress;
1.404 +/**
1.405 +The invisible folder that contains the messages read from the SIM by the command
1.406 +ESmsMtmCommandEnumeratePhoneStores.
1.407 +*/
1.408 + TMsvId iEnumerateFolder;
1.409 + };
1.410 +
1.411 +/**
1.412 +Package buffer for TSmsProgress.
1.413 +
1.414 +@see TSmsProgress
1.415 +
1.416 +@publishedAll
1.417 +@released
1.418 +*/
1.419 +typedef TPckgBuf<TSmsProgress> TSmsProgressBuf;
1.420 +
1.421 +
1.422 +/**
1.423 +The SMS settings that are relevant on a per message basis.
1.424 +
1.425 +Each SMS message has its own settings. Initially they have a default set of
1.426 +values derived from the SMS service settings. They can be changed on an
1.427 +individual message basis. For instance, a messaging application may allow a
1.428 +user to specify/not specify status reports individually for each message.
1.429 +
1.430 +These settings are only relevant to mobile originated messages - those of
1.431 +SMS-SUBMIT type.
1.432 +
1.433 +@publishedAll
1.434 +@released
1.435 +*/
1.436 +class CSmsMessageSettings : public CBase
1.437 + {
1.438 +public:
1.439 + IMPORT_C virtual void InternalizeL(RReadStream& aReadStream);
1.440 + IMPORT_C virtual void ExternalizeL(RWriteStream& aWriteStream) const;
1.441 +
1.442 + inline const TTimeIntervalMinutes& ValidityPeriod() const;
1.443 + inline void SetValidityPeriod(TTimeIntervalMinutes);
1.444 +
1.445 + inline void SetValidityPeriodFormat(TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat);
1.446 + inline const TSmsFirstOctet::TSmsValidityPeriodFormat ValidityPeriodFormat() const;
1.447 +
1.448 + inline TBool RejectDuplicate() const;
1.449 + inline void SetRejectDuplicate(TBool);
1.450 +
1.451 + inline TBool DeliveryReport() const;
1.452 + inline void SetDeliveryReport(TBool);
1.453 +
1.454 + inline TBool ReplyPath() const;
1.455 + inline void SetReplyPath(TBool);
1.456 +
1.457 + inline TSmsPIDConversion MessageConversion() const;
1.458 + inline void SetMessageConversion(TSmsPIDConversion);
1.459 +
1.460 + inline TBool CanConcatenate() const;
1.461 + inline void SetCanConcatenate(TBool);
1.462 +
1.463 + inline enum TSmsDataCodingScheme::TSmsAlphabet CharacterSet() const;
1.464 + inline void SetCharacterSet(TSmsDataCodingScheme::TSmsAlphabet);
1.465 +
1.466 + IMPORT_C virtual void CopyL(const CSmsMessageSettings& aSettings);
1.467 +
1.468 + TUint32 MessageFlags() const;
1.469 + void SetMessageFlags(TUint32 aMsgFlags);
1.470 + inline TBool LastSegmentDeliveryReport() const;
1.471 + inline void SetLastSegmentDeliveryReport(TBool);
1.472 +
1.473 + inline void SetUseServiceCenterTimeStampForDate(TBool aUseServiceCenterTimestamp);
1.474 + inline TBool UseServiceCenterTimeStampForDate() const;
1.475 +
1.476 +protected:
1.477 +
1.478 + CSmsMessageSettings();
1.479 +
1.480 +private:
1.481 +
1.482 + TUint32 iMsgFlags;
1.483 + TSmsPIDConversion iMessageConversion;
1.484 + TSmsDataCodingScheme::TSmsAlphabet iAlphabet;
1.485 + TTimeIntervalMinutes iValidityPeriod;
1.486 + TSmsFirstOctet::TSmsValidityPeriodFormat iValidityPeriodFormat;
1.487 + };
1.488 +
1.489 +/**
1.490 +The SMS Service settings.
1.491 +
1.492 +An SMS service entry stores an object of this type in its message store. These
1.493 +settings define the default settings for mobile originated messages (SMS-SUBMIT
1.494 +type messages). They also provide some global settings that are applied to all
1.495 +messages, both outward going and received messages.
1.496 +
1.497 +The SMS service also uses this class to store the set of avilable Servive Centre
1.498 +numbers. The default Service Centre is defined from this set.
1.499 +
1.500 +@publishedAll
1.501 +@released
1.502 +*/
1.503 +class CSmsSettings : public CSmsMessageSettings
1.504 + {
1.505 +public:
1.506 +
1.507 +/**
1.508 +Defines the ways in which status reports that are received by the watcher may
1.509 +be handled.
1.510 +
1.511 +This can be applied to both SMS-STATUS-REPORT type messages and Special Messages
1.512 +(e.g. Voice Mail Indication messages).
1.513 +*/
1.514 + enum TSmsReportHandling
1.515 + {
1.516 +/**
1.517 +The reports are put in the inbox and made invisible.
1.518 +*/
1.519 + EMoveReportToInboxInvisible,
1.520 +/**
1.521 +The reports are put in the inbox and made visible.
1.522 +*/
1.523 + EMoveReportToInboxVisible,
1.524 +/**
1.525 +The reports are deleted.
1.526 +*/
1.527 + EDiscardReport,
1.528 +/**
1.529 +Not supported.
1.530 +*/
1.531 + EDoNotWatchForReport,
1.532 +/**
1.533 +Reports are put in the inbox and made invisible. The status report
1.534 +is matched against the sent mesasge and its summary info updated.
1.535 +*/
1.536 + EMoveReportToInboxInvisibleAndMatch,
1.537 +/**
1.538 +Reports are put in the inbox and made visible. The status report
1.539 +is matched against the sent mesasge and its summary info updated.
1.540 +*/
1.541 + EMoveReportToInboxVisibleAndMatch,
1.542 +/**
1.543 +Reports are deleted. The status report is matched against the sent
1.544 +mesasge and its summary info updated.
1.545 +*/
1.546 + EDiscardReportAndMatch
1.547 + };
1.548 +
1.549 +/**
1.550 +Sets whether the service settings should be used to update the communications
1.551 +database.
1.552 +
1.553 +If the update is specified, it is done when the Service settings are stored into
1.554 +the message store.
1.555 +*/
1.556 + enum TSmsSettingsCommDbAction
1.557 + {
1.558 +/**
1.559 +The comms database should not be updated.
1.560 +*/
1.561 + ENone,
1.562 +/**
1.563 +Use the Service settings to update the comms datebase.
1.564 +*/
1.565 + EStoreToCommDb
1.566 + };
1.567 +
1.568 +/** Defines the SMS bearer.
1.569 +Modes: GSM */
1.570 +enum TMobileSmsBearer
1.571 + {
1.572 + /** SMS messages will only be sent over a packet-switched (GPRS) network. */
1.573 + ESmsBearerPacketOnly,
1.574 + /** SMS messages will only be sent over a circuit-switched (GSM) network. */
1.575 + ESmsBearerCircuitOnly,
1.576 + /** SMS messages will be sent over the packet-switched (GPRS) network if possible,
1.577 + otherwise over circuit-switched (GSM) network. */
1.578 + ESmsBearerPacketPreferred,
1.579 + /** SMS messages will be sent over the circuit-switched (GSM) network if possible,
1.580 + otherwise over packet-switched (GPRS) network. */
1.581 + ESmsBearerCircuitPreferred
1.582 + };
1.583 +
1.584 +public:
1.585 +
1.586 + IMPORT_C static CSmsSettings* NewL();
1.587 + IMPORT_C static CSmsSettings* NewLC();
1.588 + IMPORT_C virtual ~CSmsSettings();
1.589 +
1.590 + IMPORT_C TInt ServiceCenterCount() const;
1.591 + IMPORT_C CSmsServiceCenter& GetServiceCenter(TInt aIndex) const;
1.592 + IMPORT_C void AddServiceCenterL(const TDesC& aName,const TDesC& aNumber);
1.593 + IMPORT_C void RemoveServiceCenter(TInt aIndex);
1.594 + IMPORT_C TInt DefaultServiceCenter() const;
1.595 + IMPORT_C void SetDefaultServiceCenter(TInt aDefaultSC);
1.596 + inline TSmsDelivery Delivery() const;
1.597 + inline void SetDelivery(TSmsDelivery);
1.598 +
1.599 + inline TBool ReplyQuoted() const;
1.600 + inline void SetReplyQuoted(TBool);
1.601 +
1.602 + IMPORT_C void CopyL(const CSmsSettings& aSmsSettings);
1.603 +
1.604 + inline TSmsReportHandling StatusReportHandling() const;
1.605 + inline void SetStatusReportHandling(TSmsReportHandling aStatusReportHandling);
1.606 + inline TSmsReportHandling SpecialMessageHandling() const;
1.607 + inline void SetSpecialMessageHandling(TSmsReportHandling aSpecialMessageHandling);
1.608 +
1.609 + inline void SetCommDbAction(TSmsSettingsCommDbAction aCommDbAction);
1.610 + inline TSmsSettingsCommDbAction CommDbAction() const;
1.611 +
1.612 + inline void SetSmsBearerAction(TSmsSettingsCommDbAction aSmsBearerAction);
1.613 + inline TSmsSettingsCommDbAction SmsBearerAction() const;
1.614 +
1.615 + inline void SetSmsBearer(TMobileSmsBearer aSmsBearer);
1.616 + inline TMobileSmsBearer SmsBearer() const;
1.617 +
1.618 + inline void SetClass2Folder(TMsvId aId);
1.619 + inline TMsvId Class2Folder() const;
1.620 +
1.621 + inline void SetDescriptionLength(TInt aLength);
1.622 + inline TInt DescriptionLength() const;
1.623 +
1.624 + TUint32 SettingsFlags() const;
1.625 + void SetSettingsFlags(TUint32 aSetFlags);
1.626 +
1.627 + void RemoveSCAddresses();
1.628 + void StoreToCommDbL() const;
1.629 +
1.630 +private:
1.631 +
1.632 + CSmsSettings();
1.633 + void ConstructL();
1.634 +
1.635 +private:
1.636 +
1.637 + TUint32 iSetFlags;
1.638 + CArrayPtrFlat<CSmsServiceCenter> *iServiceCenters;
1.639 + TSmsDelivery iDelivery;
1.640 + TInt iDefaultSC;
1.641 + TSmsReportHandling iStatusReportHandling;
1.642 + TSmsReportHandling iSpecialMessageHandling;
1.643 + TSmsSettingsCommDbAction iCommDbAction;
1.644 + TSmsSettingsCommDbAction iSmsBearerAction;
1.645 + TMobileSmsBearer iSmsBearer;
1.646 + TMsvId iClass2Folder;
1.647 + TInt iDescriptionLength;
1.648 + };
1.649 +
1.650 +/**
1.651 +Recipient information for an SMS message.
1.652 +
1.653 +A SMS-SUBMIT message may have several recipients
1.654 +
1.655 +@publishedAll
1.656 +@released
1.657 +*/
1.658 +class CSmsNumber : public CMsvRecipient
1.659 + {
1.660 +public:
1.661 +
1.662 +/**
1.663 +Defines the status of an acknowledgement for a recipient.
1.664 +*/
1.665 + enum TSmsAckStatus
1.666 + {
1.667 +/**
1.668 +An acknowledgement for this recipient has not been requested.
1.669 +*/
1.670 + ENoAckRequested = 0,
1.671 +/**
1.672 +The delivery status for this recipient has been requested, but the status report
1.673 +has not yet been received.
1.674 +*/
1.675 + EPendingAck,
1.676 +/**
1.677 +A successful acknowledgement for this recipient has been received.
1.678 +*/
1.679 + EAckSuccessful,
1.680 +/**
1.681 +A failed acknowledgement for this recipient has been received.
1.682 +*/
1.683 + EAckError
1.684 + };
1.685 +
1.686 +public:
1.687 +
1.688 + IMPORT_C static CSmsNumber* NewL();
1.689 + IMPORT_C static CSmsNumber* NewL(const CSmsNumber& aSmsNumber);
1.690 + IMPORT_C virtual ~CSmsNumber();
1.691 +
1.692 + IMPORT_C void InternalizeL(RReadStream& aStream);
1.693 + IMPORT_C void ExternalizeL(RWriteStream& aStream) const;
1.694 +
1.695 + IMPORT_C TPtrC Address() const;
1.696 + IMPORT_C void SetAddressL(const TDesC& aAddress);
1.697 + void SetEmailAddressL(const TDesC& aAddress, CSmsEmailFields* aEmailFields, const TDesC& aAlias);
1.698 +
1.699 + IMPORT_C TPtrC Name() const;
1.700 + IMPORT_C void SetNameL(const TDesC& aName);
1.701 +
1.702 + inline TLogId LogId() const;
1.703 + inline void SetLogId(TLogId aLogId);
1.704 +
1.705 + IMPORT_C CSmsNumber& CopyL(const CSmsNumber& aSmsNumber);
1.706 +
1.707 + IMPORT_C TSmsAckStatus AckStatus(TSmsAckType aAckType) const;
1.708 + IMPORT_C void SetAckStatus(TSmsAckType aAckType, TSmsAckStatus aAckStatus);
1.709 +
1.710 +private:
1.711 +
1.712 + CSmsNumber();
1.713 + TPtrC LimitStringSize(const TPtrC& aString, TInt aMaxLength) const;
1.714 +
1.715 +private:
1.716 +
1.717 + HBufC* iNumber;
1.718 + HBufC* iName;
1.719 + TLogId iLogId;
1.720 + TSmsAckStatus iDeliveryStatus;
1.721 + };
1.722 +
1.723 +/**
1.724 +Used to store Service Centre numbers and their associated name.
1.725 +
1.726 +@publishedAll
1.727 +@released
1.728 +*/
1.729 +class CSmsServiceCenter : public CBase
1.730 + {
1.731 +public:
1.732 + IMPORT_C static CSmsServiceCenter* NewL();
1.733 + IMPORT_C static CSmsServiceCenter* NewL(const CSmsServiceCenter& aSmsSC);
1.734 + IMPORT_C ~CSmsServiceCenter();
1.735 +
1.736 + IMPORT_C TPtrC Address() const;
1.737 + IMPORT_C void SetAddressL(const TDesC& aAddress);
1.738 +
1.739 + IMPORT_C TPtrC Name() const;
1.740 + IMPORT_C void SetNameL(const TDesC& aName);
1.741 +
1.742 + IMPORT_C CSmsServiceCenter& CopyL(const CSmsServiceCenter& aSmsSc);
1.743 +
1.744 +private:
1.745 + CSmsServiceCenter();
1.746 + TPtrC LimitStringSize(const TPtrC& aString, TInt aMaxLength) const;
1.747 +
1.748 +private:
1.749 + HBufC* iNumber;
1.750 + HBufC* iName;
1.751 + };
1.752 +
1.753 +#include <smutset.inl>
1.754 +
1.755 +#endif // __SMUTSET_H__