diff -r 000000000000 -r 3553901f7fa8 smsprotocols/smsstack/smsprot/Inc/smspmodm.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/smsprot/Inc/smspmodm.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,128 @@ +// Copyright (c) 1997-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: +// + +/** + @file + @internalAll +*/ + +#ifndef __SMSPMODM_H__ +#define __SMSPMODM_H__ + +#include +#include +#include +#include +#include "smspcomm.h" +#include "smsuact.h" +#include "smspcdb.h" + +/** + * @internalComponent + */ +const TInt KMaxNumberOfInitiaisationAttempts=3; + +class TSmsSettings; + + +class CSmsPDURead; +class RPhone; +class RMobileSmsMessaging::TMobileSmsCapsV1; + + +/** + * class CSmsPhoneIntialization + * + * Initializes iGsmPhone (an RPhone) then checks the TSY caps and starts CSmsPDURead + * @internalComponent + */ +class CSmsPhoneInitialization : public CSmsuActiveBase + { +public: + CSmsPhoneInitialization(RMobileSmsMessaging& aSmsMessaging, RMobilePhone& aGsmPhone, CSmsPDURead& aSmsPDURead, + RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps, TInt aPriority, CSmspSetBearer* aInitialisationSetBearer); + ~CSmsPhoneInitialization(); + + void Start(); + inline TInt Initialized() const {return iInitialized;} + inline TBool NetworkInfoAvailable() const {return iNetworkInfoAvailable;} + inline const RMobilePhone::TMobilePhoneNetworkInfoV1& NetworkInfo()const {return iNetworkInfo;} + +private: + void DoRunL(); + void DoCancel(); + void Complete(TInt aStatus); + + void AfterPhoneInitialize(TInt aStatus); + enum TSmsPhoneInitializationState + { + ESmsPhoneInitializationIdle, + ESmsPhoneInitializationPhoneInit, + ESmsPhoneInitializationSettingMoBearer, + ESmsPhoneInitializationGettingRegistrationStatus, + ESmsPhoneInitializationWaitingForCurrentNetwork, + ESmsPhoneInitializationGettingCurrentNetworkInfo, + ESmsPhoneInitializationCompleted + }; + +private: + TSmsPhoneInitializationState iState; + RMobilePhone::TMobilePhoneRegistrationStatus iRegistrationStatus; + RMobileSmsMessaging& iSmsMessaging; + RMobilePhone& iGsmPhone; + CSmsPDURead& iSmsPDURead; + RMobileSmsMessaging::TMobileSmsCapsV1& iMobileSmsCaps; + TInt iInitialized; //< Indicates whether iGsmPhone has been initialized and iMobileSmsCaps supports GsmSms + TBool iNetworkInfoAvailable ; //< Indicate whether network info is available + TInt iNumberOfAttempts; + TInt iMaxNumberOfAttempts; + RMobilePhone::TMobilePhoneNetworkInfoV1 iNetworkInfo; + RMobilePhone::TMobilePhoneNetworkInfoV1Pckg iNetworkInfoPckg; + CSmspSetBearer* iInitialisationSetBearer; + }; + + +/** + * @internalComponent + */ +class CSmsModemNotification : public CSmsuActiveBase + { +public: + static CSmsModemNotification* NewL(MSmsComm& aSmsComm); + ~CSmsModemNotification(); + + void Start(); // Start should only be called once for the lifetime of an object + RPhone::TModemDetection ModemState(); +private: + CSmsModemNotification(MSmsComm& aSmsComm); + void ConstructL(); + void Complete(TInt aStatus); + void DoRunL(); + void DoCancel(); + +private: + enum TSmsModemNotificationState + { + ESmsModemNotificationIdle, + ESmsModemNotificationWaitingForNotification + }; + +private: + TSmsModemNotificationState iState; + MSmsComm& iSmsComm; + RProperty iPhonePowerProperty; + }; + +#endif // !defined __SMSPMODM_H__