cellular/telephonysettings/inc/MCallDiverting.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2002-2006 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: Declaration of MCallDiverting interface class.
*
*/


#ifndef     MCALLDIVERTING_H
#define     MCALLDIVERTING_H

/**
 *  MCallDiverting class is virtual interface class for divert 
 *  functionality.
 *
 *  @lib phonesettings
 *  @since S60 v5.1
 */
class MCallDiverting
    {
    public:

        /**
        * Sets diverting to the network.
        * 
        * @param aDivert New divert settings.
        * @param aBsc List of basic service groups .
        */
        virtual void SetDivertingL( const TCallDivertSetting& aDivert,  
                                    TBasicServiceGroups aBsc ) = 0;
        /**
        * Checks the diverting status from network.
        * 
        * @param aServiceGroup Service group indication.
        * @param aCondition Diverting conditions.
        * @param aBsc List of basic service groups.
        */
        virtual void GetDivertingStatusL( 
                                    const TServiceGroup aServiceGroup, 
                                    const TCallDivertingCondition aCondition, 
                                    TBasicServiceGroups aBsc ) = 0;
        /**
        * Cancels current request.
        * 
        * @return Returns error code.
        */
        virtual TInt CancelCurrentRequest() = 0;
        
        /**
        *  Reads used divert numbers (0-3) from central repository
        *  and fills array with them.
        *
        *  @param aType used line.
        *  @param aArray array of divert number.
        *  @return amount of numbers.
        */
        virtual TInt GetNumbersFromSharedDataL( 
                                    TInt aType, 
                                    CDesC16ArrayFlat& aArray ) = 0;
        /**
        * Sets new default number the the default numbers list, 
        * erases the oldest one.
        * 
        * @param aNumber phone number. 
        * @return Returns error code.
        */
        virtual TInt SetNewDefaultNumberL( TDes& aNumber ) = 0;
        
        /**
        *  Gets the default time for CF No Reply.
        *  No error checking for return values which should be
        *  5-30, in steps of 5.
        *
        * @return Returns the current timer value.
        */
        virtual TInt GetTimerValueL() = 0;
        
        /*
        *  Sets the default time for CF No Reply.
        *  No error checking to parameters, which should be on range 5-30,
        *  using steps of 5.
        *
        *  @param aIndex New value for timer.
        *  @return Returns error code.
        */
        virtual TInt SetTimerValueL( const TInt& aValue ) = 0;
        
        /**
        * Swaps the most recently used number to first in shared data file.
        *
        * @param  aLocation Used number's location (1-3) in shared data.
        */
        virtual void SwapDefaultNumberL( const TInt& aLocation ) = 0;
        
        /**
        * Saves a single value to central repository. Make sure that repository
        * is open before calling this function.
        */
        virtual TInt SaveKey( TUint32 aKeyId, const TDesC& aKeyValue ) = 0;
        
        /**
        * Opens Vmbx connection. Leaves vmbx to the stack. 
        * 
        * @param aTelNumber vmbx number.
        * @param aVmbx vmbx connection.
        * @return used vmbx number.
        */ 
        virtual TInt OpenVmbxLC( TDes& aTelNumber, RVmbxNumber& aVmbx ) = 0;
        
        /*
        * Virtual destructor. 
        */ 
        virtual ~MCallDiverting() {};
    };

#endif // MPCALLDIVERTING_H