cbs/cbsserver/ServerInc/CCbsSettings.h
author hgs
Tue, 10 Aug 2010 13:19:41 +0300
changeset 38 bc103bfb69cf
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201031_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  This file contains the header file of the server-side settings 
hgs
parents:
diff changeset
    15
*                subsession class.
hgs
parents:
diff changeset
    16
*
hgs
parents:
diff changeset
    17
*/
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#ifndef     CCBSSETTINGS_H
hgs
parents:
diff changeset
    22
#define     CCBSSETTINGS_H
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// INCLUDES
hgs
parents:
diff changeset
    25
#include "CCbsSession.h"
hgs
parents:
diff changeset
    26
#include "CCbsObject.h"
hgs
parents:
diff changeset
    27
#include "MCbsDbSettingsObserver.H"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    30
class CCbsDbImpSettings;
hgs
parents:
diff changeset
    31
class CCbsRecEtel;
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
//  CLASS DECLARATION 
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
/**
hgs
parents:
diff changeset
    36
*   The server-side CbsClient subsession for modifying settings.
hgs
parents:
diff changeset
    37
*/
hgs
parents:
diff changeset
    38
class   CCbsSettings
hgs
parents:
diff changeset
    39
        : public CCbsObject, public MCbsDbSettingsObserver
hgs
parents:
diff changeset
    40
    {
hgs
parents:
diff changeset
    41
    public:     // New functions
hgs
parents:
diff changeset
    42
        /**
hgs
parents:
diff changeset
    43
        *   Creates a new instance of the class.
hgs
parents:
diff changeset
    44
        *
hgs
parents:
diff changeset
    45
        *   @param  aSession        Session object
hgs
parents:
diff changeset
    46
        *   @param  aSettings       Database settings manager
hgs
parents:
diff changeset
    47
        *   @param  aReceiver       Receiver object
hgs
parents:
diff changeset
    48
        *   @return                 Pointer to a new instance of CCbsSettings
hgs
parents:
diff changeset
    49
        */
hgs
parents:
diff changeset
    50
        static CCbsSettings* NewL( CCbsSession& aSession, 
hgs
parents:
diff changeset
    51
                                   CCbsDbImpSettings& aSettings, 
hgs
parents:
diff changeset
    52
                                   CCbsRecEtel& aReceiver );
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
        /**
hgs
parents:
diff changeset
    55
        *   Destructor.
hgs
parents:
diff changeset
    56
        */
hgs
parents:
diff changeset
    57
        ~CCbsSettings();
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
    public:     // From CCbsObject
hgs
parents:
diff changeset
    60
        /**
hgs
parents:
diff changeset
    61
        *   Handle the requests for the object.
hgs
parents:
diff changeset
    62
        *
hgs
parents:
diff changeset
    63
        *   @param  aMessage        Message to be handled.
hgs
parents:
diff changeset
    64
        *   @return                 Indicates whether the message was handled.
hgs
parents:
diff changeset
    65
        */
hgs
parents:
diff changeset
    66
        TBool HandleRequestsL( const RMessage2& aMessage );
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
    private:        // From MCbsDbSettingsObserver
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
        /**
hgs
parents:
diff changeset
    71
        *   Called when the topic detection is changed.
hgs
parents:
diff changeset
    72
        */
hgs
parents:
diff changeset
    73
        void TopicDetectionStatusChangedIndL();
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
        /**
hgs
parents:
diff changeset
    76
        *   Called when reception status is changed.
hgs
parents:
diff changeset
    77
        */
hgs
parents:
diff changeset
    78
        void ReceptionStatusChangedIndL();
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
        /**
hgs
parents:
diff changeset
    81
        *   Called when preferred languages are changed.
hgs
parents:
diff changeset
    82
        */
hgs
parents:
diff changeset
    83
        void LanguagesChangedIndL();
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
        /**
hgs
parents:
diff changeset
    86
        *   Called when time-limited reception status changed
hgs
parents:
diff changeset
    87
        */
hgs
parents:
diff changeset
    88
        void LimitedReceptionStatusChangedIndL();
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
        /**
hgs
parents:
diff changeset
    91
        *   Called when clean up interval of read messages changed
hgs
parents:
diff changeset
    92
        */
hgs
parents:
diff changeset
    93
        void CleanupTimeChangedIndL();
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
    private:
hgs
parents:
diff changeset
    96
        /**
hgs
parents:
diff changeset
    97
        *   Constructor.
hgs
parents:
diff changeset
    98
        *
hgs
parents:
diff changeset
    99
        *   @param  aSession        Session session object
hgs
parents:
diff changeset
   100
        *   @param  aSettings       Database settings manager
hgs
parents:
diff changeset
   101
        *   @param  aReceiver       Receiver
hgs
parents:
diff changeset
   102
        */
hgs
parents:
diff changeset
   103
        CCbsSettings( CCbsSession& aSession, 
hgs
parents:
diff changeset
   104
                      CCbsDbImpSettings& aSettings, 
hgs
parents:
diff changeset
   105
                      CCbsRecEtel& aReceiver );
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
        /**
hgs
parents:
diff changeset
   108
        *   Finalizes construction.
hgs
parents:
diff changeset
   109
        */
hgs
parents:
diff changeset
   110
        void ConstructL();
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
        /**
hgs
parents:
diff changeset
   113
        *   Close the subsession.
hgs
parents:
diff changeset
   114
        *
hgs
parents:
diff changeset
   115
        *   Note that the method will delete itself, so the object is no
hgs
parents:
diff changeset
   116
        *   longer valid after the call.
hgs
parents:
diff changeset
   117
        */
hgs
parents:
diff changeset
   118
        void CloseSettings();
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
        /**
hgs
parents:
diff changeset
   121
        *   Return the current reception status to the client.
hgs
parents:
diff changeset
   122
        */
hgs
parents:
diff changeset
   123
        void GetReceptionStatusL();
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
        /**
hgs
parents:
diff changeset
   126
        *   Change the reception status to the requested one.
hgs
parents:
diff changeset
   127
        */
hgs
parents:
diff changeset
   128
        void SetReceptionStatusL();
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
        /**
hgs
parents:
diff changeset
   131
        *   Return the current topic detection status to the client.
hgs
parents:
diff changeset
   132
        */
hgs
parents:
diff changeset
   133
        void GetTopicDetectionStatusL();
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
        /**
hgs
parents:
diff changeset
   136
        *   Change the topic detection status to the requested one.
hgs
parents:
diff changeset
   137
        */
hgs
parents:
diff changeset
   138
        void SetTopicDetectionStatusL();
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
        /**
hgs
parents:
diff changeset
   141
        *   Return the preferred languages to the client.
hgs
parents:
diff changeset
   142
        */
hgs
parents:
diff changeset
   143
        void GetLanguagesL();
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
        /**
hgs
parents:
diff changeset
   146
        *   Change the preferred languages to the requested.
hgs
parents:
diff changeset
   147
        */
hgs
parents:
diff changeset
   148
        void SetLanguagesL();
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
        /**
hgs
parents:
diff changeset
   151
        *   Make request to notify when settings are changed.
hgs
parents:
diff changeset
   152
        */
hgs
parents:
diff changeset
   153
        void NotifySettingsChanged();
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
        /**    
hgs
parents:
diff changeset
   156
        *   Cancel the request to notify when settings are changed.
hgs
parents:
diff changeset
   157
        */
hgs
parents:
diff changeset
   158
        void NotifySettingsChangedCancel();
hgs
parents:
diff changeset
   159
        
hgs
parents:
diff changeset
   160
        /**
hgs
parents:
diff changeset
   161
        *   Notifies the client (if there is a pending request).
hgs
parents:
diff changeset
   162
        *   
hgs
parents:
diff changeset
   163
        *   @param  aEvent          Identifies the type of request that 
hgs
parents:
diff changeset
   164
        *                           has happened.
hgs
parents:
diff changeset
   165
        */
hgs
parents:
diff changeset
   166
        void NotifyClientL( TCbsSettingsEvent aEvent );
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
    private:    // Prohibited operators and functions
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
        // Copy constructor
hgs
parents:
diff changeset
   171
        CCbsSettings( const CCbsSettings& );
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
        // Assignment operator
hgs
parents:
diff changeset
   174
        CCbsSettings& operator=( const CCbsSettings& );
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    private:    // Data
hgs
parents:
diff changeset
   177
        
hgs
parents:
diff changeset
   178
        // Reference to the database settings manager
hgs
parents:
diff changeset
   179
        CCbsDbImpSettings& iSettings;
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        // Reference to the receiver
hgs
parents:
diff changeset
   182
        CCbsRecEtel& iReceiver;
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        // Indicates whether iMessage is a valid message; that is, there
hgs
parents:
diff changeset
   185
        // is a pending notify request.        
hgs
parents:
diff changeset
   186
        TBool iIsMessage;
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
        // Message of the pending notify request, if available 
hgs
parents:
diff changeset
   189
        RMessage2 iMessage;
hgs
parents:
diff changeset
   190
    };
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
#endif      //  CCBSSETTINGS_H   
hgs
parents:
diff changeset
   193
            
hgs
parents:
diff changeset
   194
// End of File
hgs
parents:
diff changeset
   195
hgs
parents:
diff changeset
   196