diff -r 000000000000 -r 72b543305e3a mobilemessaging/smum/inc/MsgSimSCNumberDetector.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/smum/inc/MsgSimSCNumberDetector.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,151 @@ +/* +* Copyright (c) 2002 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: +* An active object class which takes care of reading the possible new +* service centres from SIM and adds them to Sms Settings. +* +*/ + + + +#ifndef __MSGSIMSCNUMBERDETECTOR_H__ +#define __MSGSIMSCNUMBERDETECTOR_H__ + +// INCLUDES +#include // for MsvSession +#include // for CSmsClientMtm +#include +#include // for CSmsSimParamOperation + +// FORWARD DECLARATIONS +class CClientMtmRegistry; +class CSmumStartUpMonitor; +// CLASS DECLARATION + +/** +* CMsgSimOperation +* Inherited from CActive, MMsvSessionObserver +*/ +class CMsgSimOperation: public CActive, public MMsvSessionObserver + { + public: // Constructors and destructor + + /** + * Constructor. + */ + IMPORT_C static CMsgSimOperation* NewL( TRequestStatus& aClientStatus ); + + /** + * Destructor + */ + ~CMsgSimOperation(); + + public: // new functions + + /** + * Callback function for startup state monitor object + */ + void HandleStartupReadyL(); + + private: // new functions + + /** + * C++ constructor which initializes the active object with a + * default priority and adds it to the active scheduler. + * @param TRequestStatus& aStatus, TInt aPriority + * @return nothing + */ + CMsgSimOperation( TRequestStatus& aStatus, TInt aPriority = EPriorityStandard ); + + /** + * This function simulates issuing request, activates the object and starts to open Msv session + * @param none + * @return nothing + */ + void StartL(); + + /** + * Complete this active object's request status + * @param TInt aValue + * @return nothing + */ + void CompleteRequest( TInt aValue ); + + /** + * Complete the client's active object request status + * @param TInt aValue + * @return nothing + */ + void CompleteClientRequest( TInt aValue ); + + /** + * Do we have a client request status to complete? + * @param nothing + * @return TBool + */ + TBool HaveClientRequestStatus() const; + + private: // Panic related + + /** + * + */ + enum TSimOperationPanic + { + ESimOperationPanicRequestAlreadyActive = 0, + ESimOperationPanicClientsRequestAlreadyCompleted + }; + + /** + * Panic the thread + * @param TSimOperationPanic aPanic + * @return nothing + */ + static void Panic(TSimOperationPanic aPanic); + + private: // from baseclasses + + /** + * From CActive + */ + void DoCancel(); + void RunL(); + void DoRunL(); + TInt RunError( TInt ); + + /** + * From MMsvSessionObserver + */ + void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3 ); + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL(); + + private: // Data + TRequestStatus* iClientStatus; + CSmsSimParamOperation* iSimOperation; + CMsvSession* iMsvSession; + CSmsClientMtm* iSmsClientMtm; + CClientMtmRegistry* iClientRegistry; + TInt iRetryCount; + CSmumStartUpMonitor* iStartupMonitor; + TBool iCheckSimScAlways; + + }; + +#endif // not defined __MSGSIMSCNUMBERDETECTOR_H__ + +// End of file