satengine/satserver/Commands/RefreshRequiredCmd/inc/CRefreshRequiredHandler.h
author hgs
Fri, 23 Jul 2010 12:32:49 +0300
changeset 35 6aefa3341fcc
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201029
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2010 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:  RefreshRequired command handler
hgs
parents:
diff changeset
    15
*
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
#ifndef CREFRESHREQUIREDHANDLER_H
hgs
parents:
diff changeset
    21
#define CREFRESHREQUIREDHANDLER_H
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
//  INCLUDES
hgs
parents:
diff changeset
    24
#include <etelsat.h>
hgs
parents:
diff changeset
    25
#include "SatSTypes.h"
hgs
parents:
diff changeset
    26
#include "CSatCommandHandler.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// FORWARD DECLARATION
hgs
parents:
diff changeset
    29
class MSatUtils;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// CLASS DECLARATION
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
/**
hgs
parents:
diff changeset
    34
*  Command handler for RefreshRequired command.
hgs
parents:
diff changeset
    35
*
hgs
parents:
diff changeset
    36
*  @lib RefreshRequiredCmd.lib
hgs
parents:
diff changeset
    37
*  @since Series 60 3.0
hgs
parents:
diff changeset
    38
*/
hgs
parents:
diff changeset
    39
class CRefreshRequiredHandler : public CSatCommandHandler
hgs
parents:
diff changeset
    40
    {
hgs
parents:
diff changeset
    41
    public:     // Constructors and destructor
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
        /**
hgs
parents:
diff changeset
    44
        * Two-phased constructor.
hgs
parents:
diff changeset
    45
        * @param aUtils SAT Utils interface
hgs
parents:
diff changeset
    46
        */
hgs
parents:
diff changeset
    47
        static CRefreshRequiredHandler* NewL( MSatUtils* aUtils );
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
        /**
hgs
parents:
diff changeset
    50
        * Destructor.
hgs
parents:
diff changeset
    51
        */
hgs
parents:
diff changeset
    52
        virtual ~CRefreshRequiredHandler();
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
    public:     // Functions from base classes
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
        /**
hgs
parents:
diff changeset
    57
        * From MSatEventObserver. Overrides the default implementation.
hgs
parents:
diff changeset
    58
        * @param aEvent An event that is occured.
hgs
parents:
diff changeset
    59
        */
hgs
parents:
diff changeset
    60
        void Event( TInt aEvent );
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
        /**
hgs
parents:
diff changeset
    63
        * From MSatCommand.
hgs
parents:
diff changeset
    64
        */
hgs
parents:
diff changeset
    65
        void ClientResponse();
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
    protected:  // Functions from base classes
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
        /**
hgs
parents:
diff changeset
    70
        * From CActive Cancels the usat request.
hgs
parents:
diff changeset
    71
        */
hgs
parents:
diff changeset
    72
        void DoCancel();
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
        /**
hgs
parents:
diff changeset
    75
        * From CCommandHandler Requests the command notification.
hgs
parents:
diff changeset
    76
        * @param aStatus Request status
hgs
parents:
diff changeset
    77
        */
hgs
parents:
diff changeset
    78
        void IssueUSATRequest( TRequestStatus& aStatus );
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
        /**
hgs
parents:
diff changeset
    81
        * From CSatCommandHandler Precheck before executing the command.
hgs
parents:
diff changeset
    82
        * @return TBool indicating command is currently allowed.
hgs
parents:
diff changeset
    83
        */
hgs
parents:
diff changeset
    84
        TBool CommandAllowed();
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
        /**
hgs
parents:
diff changeset
    87
        * From CSatCommandHandler Need for ui session.
hgs
parents:
diff changeset
    88
        * @return TBool indicating need of ui session.
hgs
parents:
diff changeset
    89
        */
hgs
parents:
diff changeset
    90
        TBool NeedUiSession();
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
        /**
hgs
parents:
diff changeset
    93
        * From CSatCommandHandler Called when USAT API notifies that command.
hgs
parents:
diff changeset
    94
        */
hgs
parents:
diff changeset
    95
        void HandleCommand();
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
        /**
hgs
parents:
diff changeset
    98
        * From CSatCommandHandler. Indicates the failure of launching ui client.
hgs
parents:
diff changeset
    99
        */
hgs
parents:
diff changeset
   100
        void UiLaunchFailed();
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
    private:
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
        /**
hgs
parents:
diff changeset
   105
        * C++ default constructor.
hgs
parents:
diff changeset
   106
        */
hgs
parents:
diff changeset
   107
        CRefreshRequiredHandler();
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
        /**
hgs
parents:
diff changeset
   110
        * By default Symbian 2nd phase constructor is private.
hgs
parents:
diff changeset
   111
        */
hgs
parents:
diff changeset
   112
        void ConstructL();
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
    private:    // New functions
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
        /**
hgs
parents:
diff changeset
   117
        * Checks whether EFimsi file change conditions prevent refresh.
hgs
parents:
diff changeset
   118
        * @return TBool indicating EFimsi file refresh allowed.
hgs
parents:
diff changeset
   119
        */
hgs
parents:
diff changeset
   120
        TBool EFIMSIRefreshAllowed() const;
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
        /**
hgs
parents:
diff changeset
   123
        * Checks whether phone state prevents refresh.
hgs
parents:
diff changeset
   124
        * @return TBool indicating refresh allowed.
hgs
parents:
diff changeset
   125
        */
hgs
parents:
diff changeset
   126
        TBool BusyNotAllowed();
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
        /**
hgs
parents:
diff changeset
   129
        * Asks permission to make refresh from clients.
hgs
parents:
diff changeset
   130
        * @return TBool indicating refresh can be started immediately.
hgs
parents:
diff changeset
   131
        */
hgs
parents:
diff changeset
   132
        TBool QueryRefreshClients();
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
        /**
hgs
parents:
diff changeset
   135
        * Refresh observers call this to indicate refresh allow.
hgs
parents:
diff changeset
   136
        * Starts the refresh when all clients has agreed.
hgs
parents:
diff changeset
   137
        * @param aAllow Indicates allowness of this client.
hgs
parents:
diff changeset
   138
        */
hgs
parents:
diff changeset
   139
        void AllowRefresh( TBool aAllow );
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
        /**
hgs
parents:
diff changeset
   142
        * Start refresh.
hgs
parents:
diff changeset
   143
        */
hgs
parents:
diff changeset
   144
        void DoRefresh();
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
        /**
hgs
parents:
diff changeset
   147
        * Notifies the refresh clients about refresh cancel.
hgs
parents:
diff changeset
   148
        */
hgs
parents:
diff changeset
   149
        void NotifyRefreshClientsCancel();
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
        /**
hgs
parents:
diff changeset
   152
        * Sends the RefreshRequired specific response to the SIM and renews
hgs
parents:
diff changeset
   153
        * the sat request. Note, this replaces TerminalRsp() here.
hgs
parents:
diff changeset
   154
        * @param aRsp RefreshRequired response data package.
hgs
parents:
diff changeset
   155
        */
hgs
parents:
diff changeset
   156
        void RefreshAllowed( const TDesC8& aRsp );
hgs
parents:
diff changeset
   157
        
hgs
parents:
diff changeset
   158
    private:    // Data
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
        // Refresh command data.
hgs
parents:
diff changeset
   161
        RSat::TRefreshV2 iRefreshRequiredData;
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
        // Refresh command package.
hgs
parents:
diff changeset
   164
        RSat::TRefreshV2Pckg iRefreshRequiredPckg;
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
        // Response from client.
hgs
parents:
diff changeset
   167
        RSat::TRefreshRspV1 iRefreshRequiredRsp;
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
        // Response package.
hgs
parents:
diff changeset
   170
        RSat::TRefreshRspV1Pckg iRefreshRequiredRspPckg;
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
        // Query command data.
hgs
parents:
diff changeset
   173
        TSatQueryV1 iQueryData;
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
        // Query package.
hgs
parents:
diff changeset
   176
        TSatQueryV1Pckg iQueryPckg;
hgs
parents:
diff changeset
   177
hgs
parents:
diff changeset
   178
        // Query response.
hgs
parents:
diff changeset
   179
        TSatQueryRspV1 iQueryRsp;
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        // Query response package.
hgs
parents:
diff changeset
   182
        TSatQueryRspV1Pckg iQueryRspPckg;
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        // Count of refresh clients queried refresh allow but not yet answered.
hgs
parents:
diff changeset
   185
        TInt iRefreshQueryClientCount;
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
        // Response of refresh query.
hgs
parents:
diff changeset
   188
        TBool iAllowRefresh;
hgs
parents:
diff changeset
   189
        
hgs
parents:
diff changeset
   190
    };
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
#endif      // CREFRESHREQUIREDHANDLER_H
hgs
parents:
diff changeset
   193
hgs
parents:
diff changeset
   194
// End of File