clientprovisioning/cpqtsp/inc/CWPSaver.h
author hgs
Tue, 13 Jul 2010 03:48:30 +0530
changeset 45 0f9fc722d255
child 42 aa33c2cb9a50
permissions -rw-r--r--
201021_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     1
/*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     2
* ============================================================================
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     3
*  Name        : CWPSaver.h
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     4
*  Part of     : Provisioning / ProvisioningBC
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     5
*  Description : Settings saver with progress note.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     6
*  Version     : %version: 1 % << Don't touch! Updated by Synergy at check-out.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     7
*
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     8
*  Copyright © 2002-2006 Nokia.  All rights reserved.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
     9
*  This material, including documentation and any related computer
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    10
*  programs, is protected by copyright controlled by Nokia.  All
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    11
*  rights are reserved.  Copying, including reproducing, storing,
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    12
*  adapting or translating, any or all of this material requires the
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    13
*  prior written consent of Nokia.  This material also contains
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    14
*  confidential information which may not be disclosed to others
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    15
*  without the prior written consent of Nokia.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    16
* ============================================================================
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    17
*/
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    18
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    19
#ifndef CWPSAVER_H
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    20
#define CWPSAVER_H
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    21
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    22
// INCLUDES
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    23
#include <aknprogressdialog.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    24
#include <activeapdb.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    25
#include <favouritesdbobserver.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    26
#include <FavouritesDb.h>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    27
#include <HbProgressDialog>
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    28
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    29
// FORWARD DECLARATIONS
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    30
class CWPEngine;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    31
class CActiveFavouritesDbNotifier;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    32
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    33
// CLASS DECLARATION
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    34
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    35
/**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    36
 * Helper class for saving Provisioning settings. Provides a progress note.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    37
 * @since 2.0
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    38
 */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    39
class CWPSaver : public CActive, 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    40
                 private MProgressDialogCallback,
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    41
                 private MActiveApDbObserver, 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    42
                 private MFavouritesDbObserver
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    43
    {
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    44
    public:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    45
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    46
        * C++ default constructor.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    47
        * @param aEngine Engine to be used for saving
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    48
        * @param aSetAsDefault EFalse => call CWPEngine::SaveL, ETrue
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    49
        *        => call CWPEngine::SetAsDefaultL
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    50
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    51
        CWPSaver( CWPEngine& aEngine, TBool aSetAsDefault );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    52
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    53
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    54
        * Destructor.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    55
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    56
        virtual ~CWPSaver();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    57
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    58
    public:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    59
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    60
        * Prepares the object for saving.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    61
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    62
        void PrepareLC();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    63
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    64
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    65
        * Executes save with a progress note. Ownership of the
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    66
        * CWPSaver object is transferred.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    67
        * @param aNumSaved When returns, contains number of settings saved.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    68
        * @return Status code. >= 0 if saving was completed
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    69
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    70
        TInt ExecuteLD( TInt& aNumSaved, TBufC<256>& value );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    71
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    72
    protected: // From CActive
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    73
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    74
        void DoCancel();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    75
        void RunL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    76
        TInt RunError( TInt aError );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    77
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    78
    private: // From MProgressDialogCallback
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    79
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    80
        void DialogDismissedL( TInt aButtonId );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    81
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    82
    private: // from MActiveApDbObserver
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    83
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    84
        void HandleApDbEventL( TEvent anEvent );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    85
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    86
    private: // from MFavouritesDbObserver
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    87
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    88
        void HandleFavouritesDbEventL( RDbNotifier::TEvent aEvent );
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    89
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    90
    private:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    91
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    92
        * Complete the request so that RunL() gets called.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    93
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    94
        void CompleteRequest();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    95
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    96
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    97
        * Complete the request so that Timeout() gets called after
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    98
        * a delay. Leaves with KErrTimeout if retry count is 
0f9fc722d255 201021_01
hgs
parents:
diff changeset
    99
        * exceeded.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   100
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   101
        void DelayedCompleteRequestL();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   102
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   103
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   104
        * Retry save now.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   105
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   106
        void Retry();
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   107
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   108
        /**
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   109
        * Timer timed-out.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   110
        */
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   111
        static TInt Timeout(TAny* aSelf);
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   112
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   113
    private:
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   114
        /// The engine used for performing the save. Refs.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   115
        CWPEngine& iEngine;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   116
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   117
        /// ETrue if setting as default
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   118
        TBool iSetAsDefault;     
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   119
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   120
        /// The item to be saved next
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   121
        TInt iCurrentItem;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   122
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   123
        /// Contains result to be passed to the called of ExecuteLD
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   124
        TInt iResult;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   125
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   126
        /// Active AP database. Owns.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   127
        CActiveApDb* iApDbNotifier;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   128
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   129
        /// Active Favourites Database. Owns.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   130
        CActiveFavouritesDbNotifier* iFavouritesNotifier;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   131
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   132
        /// Contains ETrue if commsdb is being waited on
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   133
        TBool iWaitCommsDb;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   134
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   135
        /// Contains ETrue if favourites db is being waited on
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   136
        TBool iWaitFavourites;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   137
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   138
        /// Active scheduler.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   139
        CActiveSchedulerWait iWait;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   140
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   141
        /// Timer for retry. Owns.
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   142
        CPeriodic* iRetryTimer;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   143
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   144
        /// Retry counter
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   145
        TInt iRetryCount;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   146
        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   147
        RFavouritesDb       iBookmarkDb;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   148
        RFavouritesSession  iSession;        
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   149
        HbProgressDialog *iProgress;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   150
        TBufC<200> iValue;
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   151
    };
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   152
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   153
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   154
#endif // CWPSAVER_H
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   155
0f9fc722d255 201021_01
hgs
parents:
diff changeset
   156
// End of File