/** 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 server-side settings * subsession class.**/#ifndef CCBSSETTINGS_H#define CCBSSETTINGS_H// INCLUDES#include "CCbsSession.h"#include "CCbsObject.h"#include "MCbsDbSettingsObserver.H"// FORWARD DECLARATIONSclass CCbsDbImpSettings;class CCbsRecEtel;// CLASS DECLARATION /*** The server-side CbsClient subsession for modifying settings.*/class CCbsSettings : public CCbsObject, public MCbsDbSettingsObserver { public: // New functions /** * Creates a new instance of the class. * * @param aSession Session object * @param aSettings Database settings manager * @param aReceiver Receiver object * @return Pointer to a new instance of CCbsSettings */ static CCbsSettings* NewL( CCbsSession& aSession, CCbsDbImpSettings& aSettings, CCbsRecEtel& aReceiver ); /** * Destructor. */ ~CCbsSettings(); public: // From CCbsObject /** * Handle the requests for the object. * * @param aMessage Message to be handled. * @return Indicates whether the message was handled. */ TBool HandleRequestsL( const RMessage2& aMessage ); private: // From MCbsDbSettingsObserver /** * Called when the topic detection is changed. */ void TopicDetectionStatusChangedIndL(); /** * Called when reception status is changed. */ void ReceptionStatusChangedIndL(); /** * Called when preferred languages are changed. */ void LanguagesChangedIndL(); /** * Called when time-limited reception status changed */ void LimitedReceptionStatusChangedIndL(); /** * Called when clean up interval of read messages changed */ void CleanupTimeChangedIndL(); private: /** * Constructor. * * @param aSession Session session object * @param aSettings Database settings manager * @param aReceiver Receiver */ CCbsSettings( CCbsSession& aSession, CCbsDbImpSettings& aSettings, CCbsRecEtel& aReceiver ); /** * Finalizes construction. */ void ConstructL(); /** * Close the subsession. * * Note that the method will delete itself, so the object is no * longer valid after the call. */ void CloseSettings(); /** * Return the current reception status to the client. */ void GetReceptionStatusL(); /** * Change the reception status to the requested one. */ void SetReceptionStatusL(); /** * Return the current topic detection status to the client. */ void GetTopicDetectionStatusL(); /** * Change the topic detection status to the requested one. */ void SetTopicDetectionStatusL(); /** * Return the preferred languages to the client. */ void GetLanguagesL(); /** * Change the preferred languages to the requested. */ void SetLanguagesL(); /** * Make request to notify when settings are changed. */ void NotifySettingsChanged(); /** * Cancel the request to notify when settings are changed. */ void NotifySettingsChangedCancel(); /** * Notifies the client (if there is a pending request). * * @param aEvent Identifies the type of request that * has happened. */ void NotifyClientL( TCbsSettingsEvent aEvent ); private: // Prohibited operators and functions // Copy constructor CCbsSettings( const CCbsSettings& ); // Assignment operator CCbsSettings& operator=( const CCbsSettings& ); private: // Data // Reference to the database settings manager CCbsDbImpSettings& iSettings; // Reference to the receiver CCbsRecEtel& iReceiver; // Indicates whether iMessage is a valid message; that is, there // is a pending notify request. TBool iIsMessage; // Message of the pending notify request, if available RMessage2 iMessage; };#endif // CCBSSETTINGS_H // End of File