satengine/satserver/SatInternalClient/src/RSatUiSession.cpp
author hgs
Fri, 03 Sep 2010 13:59:20 +0300
changeset 46 2fa1fa551b0b
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2008 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:  The UI Client API of the SAT Server.
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
//  INCLUDE FILES
hgs
parents:
diff changeset
    21
#include <e32def.h>
hgs
parents:
diff changeset
    22
#include <rsatsession.h>
hgs
parents:
diff changeset
    23
#include <data_caging_path_literals.hrh>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "RSatUiSession.h"
hgs
parents:
diff changeset
    26
#include "MSatUiObserver.h"
hgs
parents:
diff changeset
    27
#include "MSatUiAdapter.h"
hgs
parents:
diff changeset
    28
#include "SatSOpcodes.h"
hgs
parents:
diff changeset
    29
#include "CSatCCommandProcessor.h"
hgs
parents:
diff changeset
    30
#include "SatServerFactory.h"
hgs
parents:
diff changeset
    31
#include "SatLog.h"
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
// CONSTANTS
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
#if defined( __WINS__ )
hgs
parents:
diff changeset
    36
const TInt KHeapMinSize = 0x10000;
hgs
parents:
diff changeset
    37
const TInt KHeapMaxSize = 0x10000;
hgs
parents:
diff changeset
    38
#endif
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
// ============================ MEMBER FUNCTIONS ===============================
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// RSatUiSession::RSatUiSession
hgs
parents:
diff changeset
    44
// Class constructor.
hgs
parents:
diff changeset
    45
// (other items were commented in a header).
hgs
parents:
diff changeset
    46
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
//
hgs
parents:
diff changeset
    48
EXPORT_C RSatUiSession::RSatUiSession() :
hgs
parents:
diff changeset
    49
    RSubSessionBase(),
hgs
parents:
diff changeset
    50
    iCommandProcessor( NULL ),
hgs
parents:
diff changeset
    51
    iSatUiObserver( NULL )
hgs
parents:
diff changeset
    52
    {
hgs
parents:
diff changeset
    53
    }
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    56
// RSatUiSession::RegisterL
hgs
parents:
diff changeset
    57
// Registers a new client.
hgs
parents:
diff changeset
    58
// (other items were commented in a header).
hgs
parents:
diff changeset
    59
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    60
//
hgs
parents:
diff changeset
    61
EXPORT_C void RSatUiSession::RegisterL(
hgs
parents:
diff changeset
    62
    const RSatSession& aSession,
hgs
parents:
diff changeset
    63
    MSatUiObserver* aSatUiObserver )
hgs
parents:
diff changeset
    64
    {
hgs
parents:
diff changeset
    65
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::RegisterL calling" )
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
    // If the server isn't already started, we can't do anything.
hgs
parents:
diff changeset
    68
    if ( !IsServerStarted() )
hgs
parents:
diff changeset
    69
        {
hgs
parents:
diff changeset
    70
        LOG( SIMPLE, 
hgs
parents:
diff changeset
    71
        "SATINTERNALCLIENT: RSatUiSession::RegisterL server not started" )
hgs
parents:
diff changeset
    72
        User::Leave( KErrCouldNotConnect );
hgs
parents:
diff changeset
    73
        }
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
    iSatUiObserver = aSatUiObserver;
hgs
parents:
diff changeset
    76
    iCommandProcessor = CSatCCommandProcessor::NewL( this );
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
    // Connect to the server side session.
hgs
parents:
diff changeset
    79
    TIpcArgs arguments( 0 );
hgs
parents:
diff changeset
    80
    User::LeaveIfError(
hgs
parents:
diff changeset
    81
        CreateSubSession(
hgs
parents:
diff changeset
    82
            aSession,
hgs
parents:
diff changeset
    83
            ESatSOpenUiSubSession, arguments ) );
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    // Start the handlers.
hgs
parents:
diff changeset
    86
    iCommandProcessor->Start();
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::RegisterL exiting" )
hgs
parents:
diff changeset
    89
    }
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    92
// RSatUiSession::Adapter
hgs
parents:
diff changeset
    93
// Returns a pointer to an adapter object.
hgs
parents:
diff changeset
    94
// (other items were commented in a header).
hgs
parents:
diff changeset
    95
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    96
//
hgs
parents:
diff changeset
    97
EXPORT_C MSatUiAdapter* RSatUiSession::Adapter() const
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Adapter calling" )
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
    if ( iCommandProcessor )
hgs
parents:
diff changeset
   102
        {
hgs
parents:
diff changeset
   103
        MSatUiAdapter* satUiAdapter = iCommandProcessor->ActiveCommandHandler();
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
        LOG( SIMPLE,
hgs
parents:
diff changeset
   106
            "SATINTERNALCLIENT: RSatUiSession::Adapter (iCommandProcessor) exiting" )
hgs
parents:
diff changeset
   107
        return satUiAdapter;
hgs
parents:
diff changeset
   108
        }
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    else
hgs
parents:
diff changeset
   111
        {
hgs
parents:
diff changeset
   112
        LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Adapter exiting" )
hgs
parents:
diff changeset
   113
        return NULL;
hgs
parents:
diff changeset
   114
        }
hgs
parents:
diff changeset
   115
    }
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   118
// RSatUiSession::Unregister
hgs
parents:
diff changeset
   119
// Unregisters a client.
hgs
parents:
diff changeset
   120
// (other items were commented in a header).
hgs
parents:
diff changeset
   121
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   122
//
hgs
parents:
diff changeset
   123
void RSatUiSession::Unregister()
hgs
parents:
diff changeset
   124
    {
hgs
parents:
diff changeset
   125
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Unregister calling" )
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
     if ( iCommandProcessor )
hgs
parents:
diff changeset
   128
        {
hgs
parents:
diff changeset
   129
        LOG( SIMPLE, 
hgs
parents:
diff changeset
   130
        "SATINTERNALCLIENT: RSatUiSession::Unregister iCommandProcessor true" )
hgs
parents:
diff changeset
   131
        delete iCommandProcessor;
hgs
parents:
diff changeset
   132
        iCommandProcessor = NULL;
hgs
parents:
diff changeset
   133
        }
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
    iSatUiObserver = NULL;
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Unregister exiting" )
hgs
parents:
diff changeset
   138
    }
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   141
// RSatUiSession::Version
hgs
parents:
diff changeset
   142
// Returns the current version of the client.
hgs
parents:
diff changeset
   143
// (other items were commented in a header).
hgs
parents:
diff changeset
   144
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   145
//
hgs
parents:
diff changeset
   146
EXPORT_C TVersion RSatUiSession::Version() const
hgs
parents:
diff changeset
   147
    {
hgs
parents:
diff changeset
   148
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Version calling-exiting" )
hgs
parents:
diff changeset
   149
    return TVersion(
hgs
parents:
diff changeset
   150
        KSatServerMajorVersionNumber,
hgs
parents:
diff changeset
   151
        KSatServerMinorVersionNumber,
hgs
parents:
diff changeset
   152
        KSatServerBuildVersionNumber );
hgs
parents:
diff changeset
   153
    }
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   156
// RSatUiSession::Close
hgs
parents:
diff changeset
   157
// Closes the server session.
hgs
parents:
diff changeset
   158
// (other items were commented in a header).
hgs
parents:
diff changeset
   159
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   160
//
hgs
parents:
diff changeset
   161
EXPORT_C void RSatUiSession::Close()
hgs
parents:
diff changeset
   162
    {
hgs
parents:
diff changeset
   163
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Close calling" )
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    Unregister();
hgs
parents:
diff changeset
   166
    CloseSubSession( ESatSCloseUiSubSession );
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Close exiting" )
hgs
parents:
diff changeset
   169
    }
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   172
// RSatUiSession::Panic
hgs
parents:
diff changeset
   173
// Panics the client.
hgs
parents:
diff changeset
   174
// (other items were commented in a header).
hgs
parents:
diff changeset
   175
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   176
//
hgs
parents:
diff changeset
   177
EXPORT_C void RSatUiSession::Panic(
hgs
parents:
diff changeset
   178
    TSatClientPanic aReason ) const
hgs
parents:
diff changeset
   179
    {
hgs
parents:
diff changeset
   180
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Panic" )
hgs
parents:
diff changeset
   181
hgs
parents:
diff changeset
   182
    User::Panic( KSatCliName, aReason );
hgs
parents:
diff changeset
   183
    }
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   186
// RSatUiSession::KillServer
hgs
parents:
diff changeset
   187
// Kills the server.
hgs
parents:
diff changeset
   188
// (other items were commented in a header).
hgs
parents:
diff changeset
   189
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   190
//
hgs
parents:
diff changeset
   191
EXPORT_C void RSatUiSession::KillServer() const
hgs
parents:
diff changeset
   192
    {
hgs
parents:
diff changeset
   193
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::KillServer calling" )
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
    // Use a dummy arguments table.
hgs
parents:
diff changeset
   196
    TIpcArgs arguments( 0 );
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
    // Request the server shutdown.
hgs
parents:
diff changeset
   199
    SendReceive( ESatSShutdown, arguments );
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::KillServer exiting" )
hgs
parents:
diff changeset
   202
    }
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   205
// RSatUiSession::IsServerStarted
hgs
parents:
diff changeset
   206
// Checks if the server is already started.
hgs
parents:
diff changeset
   207
// (other items were commented in a header).
hgs
parents:
diff changeset
   208
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   209
//
hgs
parents:
diff changeset
   210
TBool RSatUiSession::IsServerStarted() const
hgs
parents:
diff changeset
   211
    {
hgs
parents:
diff changeset
   212
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::IsServerStarted calling" )
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
    TFindServer findServer( KSatServerName );
hgs
parents:
diff changeset
   215
    TFullName name;
hgs
parents:
diff changeset
   216
    TBool started = ( KErrNone == findServer.Next( name ) );
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::IsServerStarted exiting" )
hgs
parents:
diff changeset
   219
    return started;
hgs
parents:
diff changeset
   220
    }
hgs
parents:
diff changeset
   221
hgs
parents:
diff changeset
   222
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   223
// RSatUiSession::CreateRequest
hgs
parents:
diff changeset
   224
// Creates Send Receive request.
hgs
parents:
diff changeset
   225
// (other items were commented in a header).
hgs
parents:
diff changeset
   226
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   227
//
hgs
parents:
diff changeset
   228
EXPORT_C void RSatUiSession::CreateRequest(
hgs
parents:
diff changeset
   229
    TInt aFunction,
hgs
parents:
diff changeset
   230
    const TIpcArgs& aArgs,
hgs
parents:
diff changeset
   231
    TRequestStatus& aStatus ) const
hgs
parents:
diff changeset
   232
    {
hgs
parents:
diff changeset
   233
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest calling" )
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
    SendReceive( aFunction, aArgs, aStatus );
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest exiting" )
hgs
parents:
diff changeset
   238
    }
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   241
// RSatUiSession::CreateRequest
hgs
parents:
diff changeset
   242
// Creates Send Receive request.
hgs
parents:
diff changeset
   243
// (other items were commented in a header).
hgs
parents:
diff changeset
   244
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   245
//
hgs
parents:
diff changeset
   246
EXPORT_C void RSatUiSession::CreateRequest(
hgs
parents:
diff changeset
   247
    TInt aFunction,
hgs
parents:
diff changeset
   248
    const TIpcArgs& aArgs ) const
hgs
parents:
diff changeset
   249
    {
hgs
parents:
diff changeset
   250
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest calling" )
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
    SendReceive( aFunction, aArgs );
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
    LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest exiting" )
hgs
parents:
diff changeset
   255
    }
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   258
// RSatUiSession::SatUiObserver
hgs
parents:
diff changeset
   259
// Returns a pointer to a client observer object.
hgs
parents:
diff changeset
   260
// (other items were commented in a header).
hgs
parents:
diff changeset
   261
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   262
//
hgs
parents:
diff changeset
   263
EXPORT_C MSatUiObserver* RSatUiSession::SatUiObserver()
hgs
parents:
diff changeset
   264
    {
hgs
parents:
diff changeset
   265
    LOG( SIMPLE, 
hgs
parents:
diff changeset
   266
    "SATINTERNALCLIENT: RSatUiSession::SatUiObserver calling-exiting" )
hgs
parents:
diff changeset
   267
    return iSatUiObserver;
hgs
parents:
diff changeset
   268
    }
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   271
// RSatUiSession::CommandProcessor
hgs
parents:
diff changeset
   272
// Returns a pointer to a command processor object.
hgs
parents:
diff changeset
   273
// (other items were commented in a header).
hgs
parents:
diff changeset
   274
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
   275
//
hgs
parents:
diff changeset
   276
CSatCCommandProcessor* RSatUiSession::CommandProcessor()
hgs
parents:
diff changeset
   277
    {
hgs
parents:
diff changeset
   278
    LOG( SIMPLE, 
hgs
parents:
diff changeset
   279
    "SATINTERNALCLIENT: RSatUiSession::CommandProcessor calling-exiting" )
hgs
parents:
diff changeset
   280
    return iCommandProcessor;
hgs
parents:
diff changeset
   281
    }
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
//  End of File