cbsatplugin/atmisccmdplugin/inc/cnumcommandhandler.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:49:44 +0300
branchRCL_3
changeset 16 b23265fb36da
child 32 19bd632b5100
permissions -rw-r--r--
Revision: 201015 Kit: 201017

/*
 * 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 : CCNUMCommandHandler class declaration for AT+CNUM command 
 *
 */

#ifndef CNUMCOMMANDHANDLER_H
#define CNUMCOMMANDHANDLER_H

#include "atmisccmdplugin.h"

/**
 *  This class implements an AO for AT+CPIN command using ATExt plugin framework.
 */
NONSHARABLE_CLASS( CCNUMCommandHandler ) : public CATCmdAsyncBase
{
public:
    /**
     * @param aCallback is used to notfiy ATExt server to complete the AT command request.
     */
    static CCNUMCommandHandler* NewL(MATMiscCmdPlugin* aCallback, TAtCommandParser& aATCmdParser,
                                    RMobilePhone& aPhone, RTelServer& aTelServer);
    ~CCNUMCommandHandler();

private:
    // methods inherited from CActive
    virtual void RunL();
    virtual void DoCancel();
    // RunError is not required because RunL doesn't leave.

    // inherited from CATCmdAsyncBase
    /**
     *  @see CATCmdAsyncBase::HandleCommand
     */
    virtual void HandleCommand( const TDesC8& aCmd, RBuf8& aReply, TBool aReplyNeeded );
    /**
     *  @see CATCmdAsyncBase::HandleCommandCancel
     */
    virtual void HandleCommandCancel();

    CCNUMCommandHandler(MATMiscCmdPlugin* aCallback, TAtCommandParser& aATCmdParser,
                       RMobilePhone& aPhone, RTelServer& aTelServer);
    void ConstructL();

private:
    enum TATNumState
        {
        EATNumGetStoreInfo,
        EATNumReadNumber
        };
    
    RTelServer& iTelServer;
    TInt iPendingEvent;
    
    RMobileONStore iOwnNumberStore;
    RMobileONStore::TMobileONStoreInfoV1 iOwnStoreInfo;
    RMobileONStore::TMobileONStoreInfoV1Pckg iOwnStoreInfoPckg;
    RMobileONStore::TMobileONEntryV1 iOwnNumberEntry;
    RMobileONStore::TMobileONEntryV1Pckg iOwnNumberEntryPckg;
    RBuf8 iReplyBuffer;
};

#endif /* CNUMCOMMANDHANDLER_H */