cbs/CbsServer/ClientInc/RCbsSettings.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:15:03 +0100
branchRCL_3
changeset 20 987c9837762f
parent 0 ff3b6d0fd310
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2003 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:  This file contains the header file of the RCbsSettings class
*    
*                Client-side subsession which handles requests regarding
*                CbsServer settings, i.e. receive state, topic detection state and
*                selected languages.
*
*
*/



#ifndef     RCBSSETTINGS_H
#define     RCBSSETTINGS_H

// INCLUDES
#include <e32base.h>
#include "CbsCommon.h"


// FORWARD DECLARATIONS
class RCbs;

//  CLASS DECLARATION 

/**
*   This represents the client-side subsession to modify and retrieve settings.
*/
class RCbsSettings 
        : public RSubSessionBase
    {
    public:     // New functions
        
        /**
        *   Constructor.
        */
        RCbsSettings();

        /**
        *   Creates a subsession to the server. 
        *
        *   Note that this method must be called before using any other method.
        *
        *   @param  aServer     It is the session.
        *   @return             Error code.
        */
        TInt Open( RCbs& aServer );
        
        /**
        *   Closes the subsession.
        *
        *   @return             Error code.
        */
        TInt Close();

        /**
        *   Returns the reception status in aStatus, which is ETrue if the 
        *   reception is on. Otherwise it is EFalse.
        *
        *   @param  aStatus     The method returns the reception status in 
        *                       this parameter.
        */
        void GetReceptionStatus( TBool& aStatus );

        /**
        *   Changes the reception status to aStatus.
        *
        *   @param  aStatus     It contains the new reception status.
        *   @return             Result code. KErrNone if no errors.
        */
        TInt SetReceptionStatus( TBool aStatus );

        /**
        *   Returns the topic detection status in aStatus, which is ETrue if 
        *   the detection is on. Otherwise it is EFalse.
        *
        *   @param  aStatus     The method returns the topic detection status 
        *                       in this parameter.
        */
        void GetTopicDetectionStatus( TBool& aStatus );
        
        /**
        *   Changes the topic detection status to aStatus.
        *
        *   @param  aStatus     It contains the new topic detection status.
        *   @return             Result code. KErrNone if no errors.
        */
        TInt SetTopicDetectionStatus( TBool aStatus );

        /**
        *   Returns the preferred languages in aLanguages.
        *
        *   @param aLanguages   The method returns the languages in this 
        *                       parameter.
        */
        void GetLanguages( TCbsSettingsLanguages& aLanguages );

        /**
        *   Changes the preferred languages to aLanguages.
        *
        *   @param aLanguages   It contains the new preferred languages.
        *   @return             Result code. KErrNone if no errors.
        */
        TInt SetLanguages( const TCbsSettingsLanguages& aLanguages );

        /**
        *   Requests the server to notify the client whenever any settings 
        *   will be changed.
        *
        *   Note that for each subsession only one this kind of request can 
        *   be pending. Each client is responsible of assuring this.
        *
        *   @param  aStatus     It is the variable that the server will 
        *                       modify whenever an event occurs.
        *   @param  aEvent      The server will store the type of occurred 
        *                       event to this variable.
        */
        void NotifySettingsChanged( TRequestStatus& aStatus, 
            TCbsSettingsEvent& aEvent );

        /**
        *   Cancels the request to notify the client.
        */
        void NotifySettingsChangedCancel();

    private: // prohibited functions
        // Prohibited copy constructor
        RCbsSettings( const RCbsSettings& );

        // Prohibited assignment operator
        RCbsSettings& operator=( const RCbsSettings& );

    private: // Data

        // Pointer descriptor used to transfer information during a notify 
        // request.
        TPtr8 iNotifyEventPtr;
    };


#endif      //  RCBSSETTINGS_H   
            
// End of File