diff -r 000000000000 -r 72b543305e3a mobilemessaging/smsmtm/clientmtm/inc/smscmds.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/smsmtm/clientmtm/inc/smscmds.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,334 @@ +// 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: +// smscmds.h +// +/** + * @file + * @publishedAll + * @released + */ +#ifndef __SMSCMDS_H__ +#define __SMSCMDS_H__ + +#include + +/** +Numeric value of the first SMS-specific command. + +This is only used by TSmsMtmCommand. + +@see TSmsMtmCommand + +@publishedAll +@released +*/ +const TInt KMinCommandExpected = 10000; + +/** +The SMS-specific commands that can be issued through CSmsClientMtm::InvokeAsyncFunctionL. + +SMS messages can be stored in a medium other than the message store itself. For +instance, SMS messages can be stored on the SIM card. This alternative storage +is referred to as the phone store. + +Some of the commands defined allow the contents of the phone store to accessed +and manipulated. + +@see CSmsClientMtm::InvokeAsyncFunctionL +@see CSmsClientMtm::ReadSimParamsL +@see CSmsClientMtm::WriteSimParamsL +@see TSmsProgress + +@publishedAll +@released +*/ +enum TSmsMtmCommand + { +/** +Gets the service centre address (i.e. telephone number) from the GSM handset. + +The result may be retrieved from the iServiceCenterAddress member variable +in the TSmsProgress progress object for this operation. + +The aSelection and aParameter arguments are not used by this command, except +that aSelection must contain at least one member, preferably the SMS Service +ID. + +If the telephone handset is unable to supply the service centre address, then +the progress object for this operation will contain the error. + +NOTE - ESmsMtmCommandReadServiceCenter should only be used if the telephone +handset or TSY module does not support reading the SMS parameters on the SIM. +ESmsMtmCommandReadServiceCenter should only be used if the operation +returned by CSmsClientMtm::ReadSimParamsL completes with KErrNotSupported. + +@removed +This command is not supported from v7.0. The function CSmsClientMtm::ReadSimParamsL +should be used instead to obtain Service Centre number from the phone store. + +@see CSmsClientMtm::ReadSimParamsL +@see TSmsProgress +*/ + ESmsMtmCommandReadServiceCenter = KMinCommandExpected, + +/** +Sets a new service centre address (i.e. telephone number) on the GSM handset. + +The new telephone number is passed in aParameter as an 8-bit descriptor containing +a packaged TSmsServiceCenterAddress. + +The aSelection parameter argument is not used by this command, except that +aSelection must contain at least one member, preferably the SMS Service ID. + +@removed +This command is not supported from v7.0. The function CSmsClientMtm::WriteSimParamsL +should be used instead to write the Service Centre number to the phone store. + +@see CSmsClientMtm::WriteSimParamsL +@see TSmsServiceCenterAddress +*/ + ESmsMtmCommandWriteServiceCenter, + +/** +Schedules the selected SMS messages to be sent. + +The aSelection argument contains the TMsvId of the SMS messages to be sent. An +empty selection will cause a panic in debug mode. In release mode nothing will +happen. + +The time that each message is scheduled to be sent is set by the date field in +the TMsvEntry for that message. Each message in the selection must have the same +scheduled time as the first message in the selection. A send task is scheduled +to occur at this time. + +In debug mode a panic will occur if all the messages in the selection do not +have the safe scheduled time. In release mode, the scheduled time sending all +the messages in the selection will be that of the last message in the selection. + +When the scheduled task occurs not only will the selected messages be sent but +also any waiting SMS messages in the Outbox. + +If the messages are successfully sent by the scheduled task, then all the sent +messages are moved to the Sent folder. + +If any message fails to be sent then the message is marked as failed. Also it +may be re-scheduled to be sent at a later time if that particular error has been +specified as a re-schedulable error. The message remains in its current folder. + +The aParameter agrument is not used. + +@see CMsvSession::TransferCommandL + +@see CBaseMtm::InvokeAsyncCommandL + +*/ + ESmsMtmCommandScheduleCopy, + +/** +Not supported by the SMS MTM. + +@publishedAll +*/ + ESmsMtmCommandScheduleMove, + +/** +Removes all messages specified in aSelection from the task scheduler list. + +If successful, the messages will have their SendingState() set to KMsvSendStateSuspended +on completion of this operation. + +The aParameter argument is not used by this function. + +@see TMsvEntry::SendingState() +*/ + ESmsMtmCommandDeleteSchedule, + +/** +Checks the current scheduled status of the messages specified by aSelection. + +If successful, the Scheduled() and iDate members of each TMsvEntry identified +in the selection will be changed to represent that messages's current status. + +The aParameter argument is not used by this function. + +@see TMsvEntry +*/ + ESmsMtmCommandCheckSchedule, + +/** +Starts sending the specified selection of SMS messages. + +When a selection of SMS messages are scheduled to be sent using the ESmsMtmCommandScheduleCopy +command this is the actual command that is executed the scheduled time occurs. + +The SMS server MTM creates a package contain this command. The package is passed +to the task scheduler who then passes it to the schedule send exe. The exe then +uses the package to ask the SMS server MTM to send the messages. As such this +command should not be used be external clients. + +When the scheduled task occurs not only will the selected messages be sent but +also any waiting SMS messages in the Outbox. + +If the messages are successfully sent by the scheduled task, then all the sent +messages are moved to the Sent folder. + +If any message fails to be sent then the message is marked as failed. Also it +may be re-scheduled to be sent at a later time if that particular error has been +specified as a re-schedulable error. The message remains in its current folder. + +@publishedAll +*/ + ESmsMtmCommandSendScheduledCopy, + +/** +Not supported by the SMS MTM. + +@publishedAll +*/ + ESmsMtmCommandSendScheduledMove, + +/** +Reads the SMS messages on the phone store and creates a copy of those messages +in an invisible folder under the SMS service in the message store. + +If successful, the iEnumerateFolder member of the operation's progress will +identify the invisible folder which contains the messages read from the phone +store. + +The aSelection argument must contain at least the SMS servive ID. The aParameter +argument can optionally be a TPckgC containing the ID of an existing folder to +use for the enumeration. The contents of this folder will be replaced with the +current messages in the phone store. + +The operation will fail with KErrArgument if the ID in aParameter is one of the +following - KMsvRootIndexEntryId, KMsvLocalServiceIndexEntryId, KMsvGlobalInBoxIndexEntryId, +KMsvGlobalOutBoxIndexEntryId, KMsvDraftEntryId or KMsvSentEntryId. + +This command must be called before using ESmsMtmCommandCopyFromPhoneStore, +ESmsMtmCommandMoveFromPhoneStore or ESmsMtmCommandDeleteFromPhoneStore. + +Pre v7.0, this was named ESmsMtmCommandEnumerateSim. + +@see TSmsProgress +*/ + ESmsMtmCommandEnumeratePhoneStores, + +/** +Moves the messages identified in aSelection to the folder identified in aParameter +(e.g. the inbox). + +The associated SMS messages are not deleted from the phone store. + +The first entry ID in aSelection must be the SMS service ID. All following +entry IDs in the selection must then represent each message to be transferred. +aParameter should contain a packaged TMsvId, which identifies the folder to +which the messages in aSelection will be moved. + +The command ESmsMtmCommandEnumeratePhoneStores must be called before using +this command. + +Pre v7.0, this was named ESmsMtmCommandCopyFromSim. + +@see TSmsMtmCommand::ESmsMtmCommandEnumeratePhoneStores +*/ + ESmsMtmCommandCopyFromPhoneStore, + +/** +Moves the messages identified in aSelection to the folder identified in aParameter +(e.g. the inbox), and then deletes the messages from the phone store. + +The first entry ID in aSelection must be the SMS service ID. All following +entry IDs in the selection must then represent each message to be transferred. +aParameter should contain a packaged TMsvId, which identifies the folder to +which the messages in aSelection will be moved. + +The command ESmsMtmCommandEnumeratePhoneStores must be called before using +this command. + +Pre v7.0, this was named ESmsMtmCommandMoveFromSim. + +@see TSmsMtmCommand::ESmsMtmCommandEnumeratePhoneStores +*/ + ESmsMtmCommandMoveFromPhoneStore, + +/** +Deletes the specified messages from the phone store. + +The first entry ID in aSelection must be the SMS service ID. All following +entry IDs in the selection must then represent each message to be deleted. +aParameter is not used. + +The command ESmsMtmCommandEnumeratePhoneStores must be called before using +this command. + +Pre v7.0, this was named ESmsMtmCommandDeleteFromSim. + +@see TSmsMtmCommand::ESmsMtmCommandEnumeratePhoneStores +*/ + ESmsMtmCommandDeleteFromPhoneStore, + +/** +Reads the SIM parameters. + +This should not be used in the CSmsClientMtm::InvokeAsyncFunctionL function. The +CSmsClientMtm::ReadSimParamsL function should be used to read the SIM parameters. + +@see CSmsClientMtm::ReadSimParamsL + +@publishedAll +*/ + ESmsMtmCommandReadSimParams, + +/** +Writes the specified SIM parameters. + +This should not be used in the CSmsClientMtm::InvokeAsyncFunctionL function. The +CSmsClientMtm::WriteSimParamsL function should be used to write the SIM parameters. + +@see CSmsClientMtm::WriteSimParamsL + +@publishedAll +*/ + ESmsMtmCommandWriteSimParams, + +/** +Copies the SMS messages identified in aSelection to the phone store. + +The first entry ID in aSelection must be the SMS service ID. All following +entry IDs in the selection must then represent each message to be copied. +Single message with multiple recipients is copied onto SIM as multiple messages, +one message for each recipient.Copy/Move from SIM will result in multiple messages, +single message will not be reformed out of the mutiple messages on SIM. + + +Pre v7.0, this was named ESmsMtmCommandCopyToSim. +*/ + ESmsMtmCommandCopyToPhoneStore, + +/** +Moves the SMS messages identified in aSelection to the phone store. + +The first entry ID in aSelection must be the SMS service ID. All following +entry IDs in the selection must then represent each message to be moved. +SSingle message with multiple recipients is moved onto SIM as multiple messages, +one message for each recipient.Copy/Move from SIM will result in multiple messages, +single message will not be reformed out of the mutiple messages on SIM. + + +Pre v7.0, this was named ESmsMtmCommandMoveToSim. +*/ + ESmsMtmCommandMoveToPhoneStore + }; + +#endif // __SMSCMDS_H__