diff -r 1f002146abb4 -r 8d5d7fcf9b59 cbs/cbsserver/ServerInc/CCbsSettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cbs/cbsserver/ServerInc/CCbsSettings.h Wed Jul 21 18:26:52 2010 +0300 @@ -0,0 +1,196 @@ +/* +* 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 DECLARATIONS +class 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 + +