satengine/satserver/Engine/inc/CSatSUiSubSession.h
author hgs
Fri, 15 Oct 2010 13:21:28 +0300
changeset 53 25b8d29b7c59
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2007 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:  Handles ui subsession
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 CSATSUISUBSESSION_H
hgs
parents:
diff changeset
    21
#define CSATSUISUBSESSION_H
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
//  INCLUDES
hgs
parents:
diff changeset
    24
#include    "CSatSSubSession.h"
hgs
parents:
diff changeset
    25
#include    "MSatUiSession.h"
hgs
parents:
diff changeset
    26
#include    "SatSOpcodes.h"
hgs
parents:
diff changeset
    27
#include    "SatSTypes.h"
hgs
parents:
diff changeset
    28
#include    "MSatCommand.h"
hgs
parents:
diff changeset
    29
#include    "CSatClientServiceReq.h"
hgs
parents:
diff changeset
    30
#include    "MSatEventObserver.h"
hgs
parents:
diff changeset
    31
#include    "TSatEventMediator.h"
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    34
class CSatSSession;
hgs
parents:
diff changeset
    35
class MSatApi;
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
// CLASS DECLARATION
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
/**
hgs
parents:
diff changeset
    41
*  Handles ui subsession.
hgs
parents:
diff changeset
    42
*
hgs
parents:
diff changeset
    43
*  @lib SatEngine.lib
hgs
parents:
diff changeset
    44
*  @since Series 60 3.0
hgs
parents:
diff changeset
    45
*/
hgs
parents:
diff changeset
    46
class CSatSUiSubSession : public CSatSSubSession,
hgs
parents:
diff changeset
    47
                          public MSatUiSession,
hgs
parents:
diff changeset
    48
                          public MSatEventObserver
hgs
parents:
diff changeset
    49
    {
hgs
parents:
diff changeset
    50
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
        /**
hgs
parents:
diff changeset
    53
        * Two-phased constructor.
hgs
parents:
diff changeset
    54
        * @param aSession Parent session
hgs
parents:
diff changeset
    55
        * @param aSatApi SAT API Interface
hgs
parents:
diff changeset
    56
        * @param aEventMediator Event handler
hgs
parents:
diff changeset
    57
        */
hgs
parents:
diff changeset
    58
        static CSatSUiSubSession* NewL( CSatSSession& aSession,
hgs
parents:
diff changeset
    59
            MSatApi& aSatApi,
hgs
parents:
diff changeset
    60
            TSatEventMediator& aEventMediator );
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
        /**
hgs
parents:
diff changeset
    63
        * Destructor.
hgs
parents:
diff changeset
    64
        */
hgs
parents:
diff changeset
    65
        virtual ~CSatSUiSubSession();
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
    public: // Functions from base classes
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
        /**
hgs
parents:
diff changeset
    70
        * From CSatSSubSession Handler for IPC messages.
hgs
parents:
diff changeset
    71
        * @param aMessage IPC message from client.
hgs
parents:
diff changeset
    72
        */
hgs
parents:
diff changeset
    73
        void HandleCommandL( const RMessage2& aMessage );
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
        /**
hgs
parents:
diff changeset
    76
        * From MSatUiSession Closes the ui sub session.
hgs
parents:
diff changeset
    77
        */
hgs
parents:
diff changeset
    78
        void CloseUiSession();
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
        /**
hgs
parents:
diff changeset
    81
        * From MSatUiSession Clears the screen.
hgs
parents:
diff changeset
    82
        */
hgs
parents:
diff changeset
    83
        void ClearScreen();
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
        /**
hgs
parents:
diff changeset
    86
        * From MSatUiSession. Notification that command data is available.
hgs
parents:
diff changeset
    87
        * @param aCmdData Data to be sent to client.
hgs
parents:
diff changeset
    88
        * @param aCmdRsp Client response
hgs
parents:
diff changeset
    89
        * @param aRequest Request, where the data is sent.
hgs
parents:
diff changeset
    90
        */
hgs
parents:
diff changeset
    91
        void SendCommand(
hgs
parents:
diff changeset
    92
            TDesC8* aCmdData,
hgs
parents:
diff changeset
    93
            TDes8* aCmdRsp,
hgs
parents:
diff changeset
    94
            TSatServerRequest aRequest );
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
        /**
hgs
parents:
diff changeset
    97
        * From MSatUiSession.Ui Event.
hgs
parents:
diff changeset
    98
        */
hgs
parents:
diff changeset
    99
        void UiEventNotification( 
hgs
parents:
diff changeset
   100
            TInt aEventId, 
hgs
parents:
diff changeset
   101
            TInt aEventStatus, 
hgs
parents:
diff changeset
   102
            TInt aEventError );
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
        /**
hgs
parents:
diff changeset
   105
        * From MSatUiSession Queries the user.
hgs
parents:
diff changeset
   106
        * @param aCommand Command handler interface
hgs
parents:
diff changeset
   107
        */
hgs
parents:
diff changeset
   108
        void QueryUser( MSatCommand* aCommand );
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
        /**
hgs
parents:
diff changeset
   111
        * From MSatEventObserver.
hgs
parents:
diff changeset
   112
        * @param aEvent An event that is notified
hgs
parents:
diff changeset
   113
        */
hgs
parents:
diff changeset
   114
        void Event( TInt aEvent );
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    protected:  // New functions
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
        /**
hgs
parents:
diff changeset
   119
        * Sends the command data to client if the request is available.
hgs
parents:
diff changeset
   120
        * @param aRequestAvailable Indication if request is available. If
hgs
parents:
diff changeset
   121
        * data is sent aRequestAvailable will be set to EFalse.
hgs
parents:
diff changeset
   122
        * @param aData Data to be sent to client.
hgs
parents:
diff changeset
   123
        * @param aMessage Clients request message.
hgs
parents:
diff changeset
   124
        * @return Boolean value indicating was the command sent to client or not
hgs
parents:
diff changeset
   125
        */
hgs
parents:
diff changeset
   126
        TBool SendCommandDataToClient(
hgs
parents:
diff changeset
   127
            TBool& aRequestAvailable,
hgs
parents:
diff changeset
   128
            const TDesC8& aData,
hgs
parents:
diff changeset
   129
            const RMessage2& aMessage ) const;
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
        /**
hgs
parents:
diff changeset
   132
        * Sends ESatSSmEndEvent event to UI Client
hgs
parents:
diff changeset
   133
        */
hgs
parents:
diff changeset
   134
        void SendSmsSentEventToClient();
hgs
parents:
diff changeset
   135
        
hgs
parents:
diff changeset
   136
        /**
hgs
parents:
diff changeset
   137
        * Handles UI Event notification
hgs
parents:
diff changeset
   138
        */
hgs
parents:
diff changeset
   139
        void HandleUiEventNotification();
hgs
parents:
diff changeset
   140
        /**
hgs
parents:
diff changeset
   141
        * Publish the P&S key KSatAppClosedUsingEndKey to indicate the occurred
hgs
parents:
diff changeset
   142
        * End Key action
hgs
parents:
diff changeset
   143
        */
hgs
parents:
diff changeset
   144
        void PublishSatAppClosedUsingEndKey();
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
    private:
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
        /**
hgs
parents:
diff changeset
   149
        * C++ default constructor.
hgs
parents:
diff changeset
   150
        * @param aSession Parent session
hgs
parents:
diff changeset
   151
        * @param aSatApi SAT API Interface
hgs
parents:
diff changeset
   152
        * @param aEventMediator Event handler
hgs
parents:
diff changeset
   153
        */
hgs
parents:
diff changeset
   154
        CSatSUiSubSession( CSatSSession& aSession,
hgs
parents:
diff changeset
   155
            MSatApi& aSatApi,
hgs
parents:
diff changeset
   156
            TSatEventMediator& aEventMediator );
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
        /**
hgs
parents:
diff changeset
   159
        * By default Symbian 2nd phase constructor is private.
hgs
parents:
diff changeset
   160
        */
hgs
parents:
diff changeset
   161
        void ConstructL();
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
    private:    // Data
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
        // Request / Response handlers array
hgs
parents:
diff changeset
   166
        CArrayPtrFlat<CSatClientServiceReq>* iServiceRequest;
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
        // Indicates that event request is availabe
hgs
parents:
diff changeset
   169
        TBool iEventRequestAvailable;
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
        // Indicates that some command has issued close ui session
hgs
parents:
diff changeset
   172
        TBool iCloseUiRequested;
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
        // Indicates that DisplayText has requested screen to be cleared
hgs
parents:
diff changeset
   175
        TBool iClearScreenRequested;
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
        // Indicates that sms has been sent by CSendSmCmd
hgs
parents:
diff changeset
   178
        TBool iSmsSent;
hgs
parents:
diff changeset
   179
        
hgs
parents:
diff changeset
   180
        // Indicates is there event pending
hgs
parents:
diff changeset
   181
        TBool iUiEventRequested;
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
        // Event message
hgs
parents:
diff changeset
   184
        RMessage2 iEventRequest;
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
        // Event data
hgs
parents:
diff changeset
   187
        TSatEventV1 iEventData;
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
        // Event data package
hgs
parents:
diff changeset
   190
        TSatEventV1Pckg iEventDataPckg;
hgs
parents:
diff changeset
   191
hgs
parents:
diff changeset
   192
        // Sat api
hgs
parents:
diff changeset
   193
        MSatApi& iSatApi;
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
        // Query request
hgs
parents:
diff changeset
   196
        RMessage2 iQueryRequest;
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
        // Event mediator
hgs
parents:
diff changeset
   199
        TSatEventMediator& iEventMediator;
hgs
parents:
diff changeset
   200
    };
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
#endif      // CSATSUISUBSESSION_H
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
// End of File