cellular/telephonysettings/xqbindings/psetwrapper/src/psetcallbarringwrapper_p.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:45:17 +0300
branchRCL_3
changeset 19 7d48bed6ce0c
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
 * Copyright (c) 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:
 *
 */

#ifndef PSETCALLBARRINGWRAPPER_P_H
#define PSETCALLBARRINGWRAPPER_P_H

#include <mpsetbarringobs.h>
#include <mpsetrequestobs.h>
#include <nwdefs.h>
#include <psetcallbarringwrapper.h>

// Forward declarations
class PSetCallBarringWrapper;
class CPsetContainer;
class CPsetCallBarring;

class PSetCallBarringWrapperPrivate 
    : public MPsetBarringObserver, public MPsetRequestObserver
{
public:
    
    enum BarringRequest
    {
        RequestNone,
        RequestBarringStatus,
        RequestEnableBarring,
        RequestDisableBarring,
        RequestChangePassword
    };
    
public:
    
    PSetCallBarringWrapperPrivate(
        PSetCallBarringWrapper &owner,
        CPsetContainer &psetContainer);
    
    ~PSetCallBarringWrapperPrivate();
    
    void barringStatus(
        PsServiceGroup serviceGroup, 
        PSetCallBarringWrapper::BarringType barringType);
    
    void enableBarring(
        PsServiceGroup serviceGroup,
        PSetCallBarringWrapper::BarringType barringType,
        QString barringPassword);
    
    void disableBarring(
        PsServiceGroup serviceGroup,
        PSetCallBarringWrapper::BarringType barringType,
        QString barringPassword);
    
    void changeBarringPassword(
        const QString &oldPassword, 
        const QString &newPassword,
        const QString &verifiedPassword);
    
public: // From MPsetBarringObserver
    
    /**
     * From MPsetBarringObserver.
     * @see MPsetBarringObserver.
     */
    void HandleBarringModeChangedL( 
        TBarringProgram aType, 
        TBarringStatus aStatus, 
        TBool aPlural );        
    
    /**
     * From MPsetBarringObserver.
     * @see MPsetBarringObserver.
     */
    void HandleBarringModeStatusL( 
        TUint8 aBsc[KPSetNumberOfBsc], 
        TBarringStatus aStatus );
    
    /**
     * From MPsetBarringObserver.
     * @see MPsetBarringObserver.
     */
    void HandleBarringErrorL( 
        TInt aReason );

    /**
     * From MPsetBarringObserver.
     * @see MPsetBarringObserver.
     */
    void HandleCBRequestingL( 
        TBool aTrue, 
        TBool aInterrupted ); 
    
    /**
     * From MPsetBarringObserver.
     * @see MPsetBarringObserver.
     */
    void SetEngineContact( 
        MPsetCallBarring* aBarringEngine );

    /**
     * From MPsetBarringObserver.
     * @see MPsetBarringObserver.
     */
    void CbPasswordChangedL( 
        TBool aSuccess );

public: // From MPsetRequestObserver
    
    /**
     * From MPsetRequestObserver.
     * @see MPsetRequestObserver.
     */
    void RequestComplete();

    /**
     * From MPsetRequestObserver.
     * @see MPsetRequestObserver.
     */
    void RequestStatusChanged( 
        TInt aNewStatus);
    
private: 
    
    /** Owner. */
    PSetCallBarringWrapper &m_owner;
    
    /** Call barring supplementary service handler. */
    CPsetCallBarring *m_callBarring;
    
    /** Current barring request. */
    BarringRequest m_currentRequest;
    
    /** Error info from last completed request. */
    int m_barringError;
    
    /** Basic service group identifiers from last completed request. */
    QList<unsigned char> m_basicServiceGroupIds;
    
    /** Barring status from last completed request. */
    PSetCallBarringWrapper::BarringStatus m_barringStatus;
    
    /** Barring type from last completed request. */
    PSetCallBarringWrapper::BarringType m_barringType;
    
    /** Plurality from last completed request. */
    bool m_plural;
};

#endif // PSETCALLBARRINGWRAPPER_P