diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/smutsimparam.h --- a/epoc32/include/smutsimparam.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/smutsimparam.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,147 @@ -smutsimparam.h +// 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __SMUTSIMPARAM_H__ +#define __SMUTSIMPARAM_H__ + +#include +#include + +/** +The UID for the stream into which the SIM parameters are stored. + +@internalComponent +@deprecated +Should be moved to the cpp file for this class. +*/ +const TUid KUidMsvSimSmsParams = {0x100081BC}; + +class CMobilePhoneSmspList; +class TSmsProgress; + +/** +A packaged TInt value. + +This is used by CSmsSimParamOperation. + +@see CSmsSimParamOperation::ProgressL() + +@internalComponent +@released +*/ +typedef TPckgBuf TIntBuf; + +/** +Encapsulates an operation to read/write an array of SMS parameters from a SIM. + +An operation of this type if returned by the SMS client MTM for the read and +write SIM paramter operations. + +These operations are generated from calling the SMS client MTM APIs +CSmsClientMtm::ReadSimParamsL and CSmsClientMtm::WriteSimParamsL. The +CSmsClientMtm::InvokeAsyncFunctionL API should not be used for these operations. + +@see CSmsClientMtm::ReadSimParamsL +@see CSmsClientMtm::WriteSimParamsL + +@publishedAll +@released +*/ +class CSmsSimParamOperation : public CMsvOperation + { +public: + + static CSmsSimParamOperation* ReadSimParamsL(TUid aMtm, TMsvId aService, CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus); + static CSmsSimParamOperation* WriteSimParamsL(const CMobilePhoneSmspList& aList, TUid aMtm, TMsvId aService, CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus); + virtual ~CSmsSimParamOperation(); + + inline const CMobilePhoneSmspList& SmspList() const; + + IMPORT_C CMobilePhoneSmspList* ServiceCentersLC() const; + IMPORT_C const TDesC8& ProgressL(); + + IMPORT_C static void RestoreSimParamsL(CMsvStore& aStore, CMobilePhoneSmspList& aList); + IMPORT_C static void StoreSimParamsL(CMsvStore& aStore, const CMobilePhoneSmspList& aList); + +private: // methods from CActive + + virtual void RunL(); + virtual void DoCancel(); + virtual TInt RunError(TInt aError); + +private: + + CSmsSimParamOperation(TUid aMtm, TMsvId aService, CMsvSession& aMsvSession, TRequestStatus& aObserverRequestStatus); + + void DoReadSimParamsL(); + void DoRunReadSimParamsL(/*TSmsProgress aProgress*/); + void DoWriteSimParamsL(const CMobilePhoneSmspList& aList); + + void TransferCommandL(TInt aCommandId); + void Complete(); + +private: + +/** +This defines the state machine. +*/ + enum TReadSimParamsState + { +/** +Specifies waiting state +*/ + EStateWaiting, +/** +Specifies reading state +*/ + EStateReadingSimParams, +/** +Specifies writing state +*/ + EStateWritingSimParams + } iState; + +/** +A list containing the SMS parameters +*/ + CMobilePhoneSmspList* iSimParams; + TInt iError; + TIntBuf iProgressBuf; + CMsvOperation* iOperation; + }; + +/** +Gets the list of SMS parameters on the SIM, after a successfully completed +read operation. + +If the operation has not successfully completed, this function returns an +empty list. + +This function should ot be used with a write SIM parameters operation. + +@return +The list of SMS parameters read from the SIM. + +@panic SMCM 3 +This operation was not reading the SIM parameters. The operation was not returned +from CSmsClientMtm::ReadSimParamsL (debug only). +*/ +inline const CMobilePhoneSmspList& CSmsSimParamOperation::SmspList() const + { + __ASSERT_DEBUG(iState == EStateReadingSimParams, Panic(ESmscPanicUnexpectedCommand)); + return *iSimParams; + } + +#endif // __SMUTSIMPARAM_H__