diff -r f7fbeaeb166a -r b23265fb36da cbsatplugin/atmisccmdplugin/inc/clckcommandhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsatplugin/atmisccmdplugin/inc/clckcommandhandler.h Tue Apr 27 16:49:44 2010 +0300 @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2010 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 : + * CCLCKCommandHandler class declaration for AT+CLCK command + */ + +#ifndef CLCKCOMMANDHANDLER_H +#define CLCKCOMMANDHANDLER_H + +#include + +#include "atmisccmdplugin.h" + +class CSecurityCodeVerifier; +class CSecurityEventHandler; +class CCBSettingHandler; + +enum TInfoClassMask + { + EInfoClassVoice = 1, // voice (telephony) + EInfoClassData = 2, // data (refers to all bearer services; with =2 + // this may refer only to some bearer service if TA does + // not support values 16, 32, 64 and 128) + EInfoClassFax = 4, // fax (facsimile services) + EInfoClassSMS = 8, // short message service + EInfoClassSyncData = 16, // data circuit sync + EInfoClassASyncData = 32, // data circuit async + EInfoClassPacketData = 64, // dedicated packet access + EInfoClassPadAccess = 128 // dedicated PAD access + }; + +/** + * AT+CLCK command handler implementation class + */ +NONSHARABLE_CLASS( CCLCKCommandHandler ) : public CATCmdAsyncBase + { +public: + static CCLCKCommandHandler* NewL(MATMiscCmdPlugin* aCallback, TAtCommandParser& aATCmdParser, RMobilePhone& aPhone); + ~CCLCKCommandHandler(); + + // Callback methods for helper objects + void HandlePasswordVerification(TInt aError); + void HandleSecurityEvent(TInt aError, RMobilePhone::TMobilePhoneSecurityEvent aSecurityEvent); + +private: + /** + * States for lock setting + */ + enum TLockSettingState + { + ELockSettingIdle = 0x01, + ELockSettingRequested = 0x02, + ELockSettingPasswordRequested = 0x03 + }; + + enum TCLCKCommand + { + ECLCKUndefined = KErrNotFound, + ECLCKLockSet = 0x01, + ECLCKLockGet = 0x02, + ECLCKBarringSet = 0x03, + ECLCKBarringGet = 0x04 + }; + + enum TCmdFacilityType + { + ECmdFacilityTypeUnknown = 0, + ECmdFacilityTypeLock, + ECmdFacilityTypeBarring, + ECmdFacilityTypeAllBarring + }; + +private: // methods from CActive + virtual void RunL(); + virtual void DoCancel(); + // RunError not needed as RunL does not leave + +private: // methods from CATCmdAsyncBase + virtual void HandleCommand( const TDesC8& aCmd, RBuf8& aReply, TBool aReplyNeeded ); + virtual void HandleCommandCancel(); + +private: + CCLCKCommandHandler(MATMiscCmdPlugin* aCallback, TAtCommandParser& aATCmdParser, RMobilePhone& aPhone); + void ConstructL(); + + TInt ParseCCLCKCommand(); + void IssueCLCKCommand(); + TInt ReceiveCBList(); + +private: + CCBSettingHandler* iCBSettingHandler; + CSecurityEventHandler* iSecurityEventHandler; + CSecurityCodeVerifier* iSecurityCodeVerifier; + CRetrieveMobilePhoneCBList* iCBRetrieve; + + RBuf8 iReply; + + TCLCKCommand iCLCKCommandType; + RBuf8 iPassword; + TInt iInfoClass; + + TLockSettingState iLockSettingState; + RMobilePhone::TMobilePhoneLock iLockType; + RMobilePhone::TMobilePhoneLockSetting iLockChange; + RMobilePhone::TMobilePhoneSecurityCode iSecurityCode; + + RMobilePhone::TMobilePhoneLockInfoV1 iLockInfo; + RMobilePhone::TMobilePhoneLockInfoV1Pckg iLockInfoPckg; + + RMobilePhone::TMobilePhoneCBCondition iCondition; + RMobilePhone::TMobilePhoneCBChangeV1 iCBInfo; + }; + +#endif // CLCKCOMMANDHANDLER_H