phonesrv_plat/phone_settings_api/inc/psetcallbarringwrapper.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 PSETCALLBARRINGGWRAPPER_H
#define PSETCALLBARRINGGWRAPPER_H

#include <QObject>
#include <psetwrappertypes.h>

// Forward declarations 
class CPsetContainer;
class PSetCallBarringWrapperPrivate;

#ifdef BUILD_PSETWRAPPER
#define PSETWRAPPER_EXPORT Q_DECL_EXPORT
#else
#define PSETWRAPPER_EXPORT Q_DECL_IMPORT
#endif

class PSETWRAPPER_EXPORT PSetCallBarringWrapper : public QObject
{
    Q_OBJECT

public:
    
    /** barring types */
    enum BarringType
        {
        BarringTypeAllBarrings                              = 0x0001,
        BarringTypeAllOutgoing                              = 0x0002,
        BarringTypeOutgoingInternational                    = 0x0004,
        BarringTypeOutgoingInternationalExceptToHomeCountry = 0x0008,
        BarringTypeAllIncoming                              = 0x0010,
        BarringTypeIncomingWhenRoaming                      = 0x0020,
        BarringTypeAllServices,
        BarringTypeAllOutgoingServices,
        BarringTypeAllIncomingServices
        };
    
    /** barring status */
    enum BarringStatus
        {
        BarringStatusUnknown,
        BarringStatusActive,
        BarringStatusInactive,
        BarringStatusNotProvisioned,
        BarringStatusUnavailable
        };
    
    /** barring error */
    enum BarringError
    {
        BarringErrorNone
    };
    
public:
    
    explicit PSetCallBarringWrapper( 
        CPsetContainer &psetContainer, 
        QObject *parent = NULL);
    
    ~PSetCallBarringWrapper();
    
    /**
     * Checks the barring status from network. Result is signaled with 
     * barringStatusRequestCompleted.
     * 
     * @param   serviceGroup  Service group concerned.
     * @param   barringType   Barring type.
     */
    void barringStatus(
        PsServiceGroup serviceGroup, 
        BarringType barringType);

    /**
     * Enables specified barring. Result is signaled with 
     * enableBarringRequestCompleted.
     * 
     * @param   serviceGroup    Service group concerned.
     * @param   barringType     Barring type.
     * @param   barringPassword Barring password.
     */
    void enableBarring(
        PsServiceGroup serviceGroup,
        BarringType barringType,
        QString barringPassword);
    
    /**
     * Disables specified barring. Result is signaled with 
     * disableBarringRequestCompleted.
     * 
     * @param   serviceGroup    Service group concerned.
     * @param   barringType     Barring type.
     * @param   barringPassword Barring password.
     */
    void disableBarring(
        PsServiceGroup serviceGroup,
        BarringType barringType,
        QString barringPassword);
    
    /**
     * Changes barring password. Maximum password length is 10.
     * 
     * @param   oldPassword         Old barring password.
     * @param   newPassword         New barring password.
     * @param   verifiedPassword    New password verified.
     */
    void changeBarringPassword(
        const QString &oldPassword, 
        const QString &newPassword,
        const QString &verifiedPassword);
    
signals:
    
    /**
     * This signal is emitted when barring status query request is completed.
     * 
     * Basic service group identifier list contains items only if status is
     * queried for several services at once and barrings are active for some
     * of those services.
     *
     * @param   result                  0 if request was completed successfully 
     * or error code defined either in gsmerror.h or exterror.h.
     * @param   basicServiceGroupIds    Service group identifiers.
     * @param   status                  Barring status.
     */
    void barringStatusRequestCompleted(
        int result,
        const QList<unsigned char> & basicServiceGroupIds,
        PSetCallBarringWrapper::BarringStatus status);
    
    /**
     * This signal is emitted when barring enabling is completed.
     * 
     * @param   result                  0 if request was completed successfully 
     * or error code defined either in gsmerror.h or exterror.h.
     * @param   barringType             Service group identifiers.
     * @param   barringStatus           Barring status.
     * @param   plural                  Plurality.
     */
    void enableBarringRequestCompleted(
        int result,
        PSetCallBarringWrapper::BarringType barringType,
        PSetCallBarringWrapper::BarringStatus barringStatus, 
        bool plural);

    /**
     * This signal is emitted when barring disabling is completed.
     * 
     * @param   result                  0 if request was completed successfully 
     * or error code defined either in gsmerror.h or exterror.h.
     * @param   barringType             Service group identifiers.
     * @param   barringStatus           Barring status.
     * @param   plural                  Plurality.
     */
    void disableBarringRequestCompleted(
        int result,
        PSetCallBarringWrapper::BarringType barringType,
        PSetCallBarringWrapper::BarringStatus barringStatus, 
        bool plural);
    
    /**
     * This signal is emitted when barring password change request is completed.
     * 
     * @param   result                  0 if request was completed successfully 
     * or error code defined either in gsmerror.h or exterror.h.
     */
    void barringPasswordChangeRequestCompleted(int result);
    
private: // data 
    
    /** Own. Private implementation. */
    QScopedPointer<PSetCallBarringWrapperPrivate> m_privateImpl;
    friend class PSetCallBarringWrapperPrivate;
};

#endif // PSETCALLBARRINGGWRAPPER_H