diff -r eede1356aa52 -r 0ba996a9b75d cbsatplugin/atmisccmdplugin/inc/cmgwcommandhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbsatplugin/atmisccmdplugin/inc/cmgwcommandhandler.h Thu Aug 19 10:05:41 2010 +0300 @@ -0,0 +1,94 @@ +/* + * 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 : + * + * CMGWCommandHandler class declaration for AT+CMGW command + * + */ + +#ifndef CMGWCOMMANDHANDLER_H +#define CMGWCOMMANDHANDLER_H + +#include "atcmdasyncbase.h" + +#include +#include + +class CRetrieveMobilePhoneSmspList; +class CMobilePhoneSmspList; + +/** + * AT+CMGW command handler implementation class + */ +NONSHARABLE_CLASS( CCMGWCommandHandler ) : public CATCmdAsyncBase + { +private: + enum TCMGWState + { + ECMGWStateIdle, // Idle + ECMGWStateEditMode, // Edit mode + ECMGWStateRetrieveSCA, // Retrieve SCA + ECMGWStatePreparePDU, + ECMGWStateWritePDU, // Write PDU + ECMGWStateSimStoreNotSupported // Sim store not supported + }; + +public: + static CCMGWCommandHandler* NewL(MATMiscCmdPlugin* aCallback, TAtCommandParser& aATCmdParser, RMobilePhone& aPhone); + ~CCMGWCommandHandler(); + + void SetMessageFormat(TInt aFormat); + +private: // methods from CActive + virtual void RunL(); + virtual void DoCancel(); + virtual TInt RunError (TInt aError); + +private: // methods from CATCmdAsyncBase + virtual void HandleCommand( const TDesC8& aCmd, RBuf8& aReply, TBool aReplyNeeded ); + +private: + CCMGWCommandHandler(MATMiscCmdPlugin* aCallback, TAtCommandParser& aATCmdParser, RMobilePhone& aPhone); + void ConstructL(); + + void HandleEditModeCommand( const TDesC8& aCmd ); + TInt ParseParameters(); + TInt CreateSmsEntry(); + TInt ExtractSCA(); + +private: + RMobileSmsMessaging iMobileSmsMessaging; + RMobileSmsStore iMobileSmsStore; + CRetrieveMobilePhoneSmspList* iRetrieveMobilePhoneSmspList; + CMobilePhoneSmspList* iMobilePhoneSmspList; + RMobileSmsMessaging::TMobileSmspEntryV1 iMobileSmspEntry; + + RMobilePhone::TMobileAddress iServiceCentre; + + TCMGWState iState; + RBuf8 iTPDU; + + TInt iTPDULength; + TInt iTPDUStat; + TUint8 iSCALength; + RMobileSmsStore::TMobileSmsStoreStatus iMessageStatus; + + RMobileSmsStore::TMobileGsmSmsEntryV1 iEntry; + RMobileSmsStore::TMobileGsmSmsEntryV1Pckg iEntryPckg; + + RBuf8 iReply; + + TInt iMsgFormat; + }; + +#endif /* CMGWCOMMANDHANDLER_H */