mmserv/tms/tmsserver/src/tmsserver.cpp
changeset 20 b67dd1fc57c5
parent 19 4a629bc82c5e
child 28 ebf79c79991a
equal deleted inserted replaced
19:4a629bc82c5e 20:b67dd1fc57c5
    43 // -----------------------------------------------------------------------------
    43 // -----------------------------------------------------------------------------
    44 // TMSServer::NewL
    44 // TMSServer::NewL
    45 //
    45 //
    46 // -----------------------------------------------------------------------------
    46 // -----------------------------------------------------------------------------
    47 //
    47 //
    48 TMSServer* TMSServer::NewL()
    48 TMSServer* TMSServer::NewLC()
    49     {
    49     {
    50     TMSServer* self = new (ELeave) TMSServer;
    50     TMSServer* self = new (ELeave) TMSServer;
    51     CleanupStack::PushL(self);
    51     CleanupStack::PushL(self);
    52     self->ConstructL();
    52     self->ConstructL();
    53     CleanupStack::Pop(self);
       
    54     return self;
    53     return self;
    55     }
    54     }
    56 
    55 
    57 // -----------------------------------------------------------------------------
    56 // -----------------------------------------------------------------------------
    58 // TMSServer::TMSServer
    57 // TMSServer::TMSServer
  1290 
  1289 
  1291     TRACE_PRN_FN_EXT;
  1290     TRACE_PRN_FN_EXT;
  1292     }
  1291     }
  1293 
  1292 
  1294 // -----------------------------------------------------------------------------
  1293 // -----------------------------------------------------------------------------
  1295 // RunServerL
  1294 // TMSServer::RunServerL
  1296 //
  1295 //
  1297 // -----------------------------------------------------------------------------
  1296 // -----------------------------------------------------------------------------
  1298 //
  1297 //
  1299 static void RunServerL()
  1298 void TMSServer::RunServerL()
  1300     {
  1299     {
  1301     TRACE_PRN_N(_L("TMS->RunServerL"));
  1300     TRACE_PRN_N(_L("TMS->RunServerL"));
       
  1301 
       
  1302     // Naming the server thread after the server helps to debug panics
       
  1303     User::LeaveIfError(User::RenameThread(KTMSServerName));
  1302 
  1304 
  1303     // Create and install the active scheduler we need
  1305     // Create and install the active scheduler we need
  1304     CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
  1306     CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
  1305     CleanupStack::PushL(scheduler);
  1307     CleanupStack::PushL(scheduler);
  1306     CActiveScheduler::Install(scheduler);
  1308     CActiveScheduler::Install(scheduler);
  1307 
  1309 
  1308     // Create the server (leave it on the cleanup stack)
  1310     // Create the server (leave it on the cleanup stack)
  1309     TMSServer* server = TMSServer::NewL();
  1311     TMSServer* server = TMSServer::NewLC();
  1310 
  1312 
  1311     // Initialisation complete, now signal the client
  1313     // Initialisation complete, now signal the client
  1312     RProcess::Rendezvous(TMS_RESULT_SUCCESS);
  1314     RProcess::Rendezvous(TMS_RESULT_SUCCESS);
  1313 
  1315 
  1314     // Start the scheduler and wait for client requests
  1316     // Start the scheduler and wait for client requests
  1315     CActiveScheduler::Start();
  1317     CActiveScheduler::Start();
  1316 
  1318 
  1317     // Ready to exit.
  1319     // Ready to exit.
  1318     // Cleanup scheduler and delete the server
  1320     // Cleanup scheduler and delete the server
  1319     delete server;
  1321     CleanupStack::PopAndDestroy(server);
  1320     CleanupStack::PopAndDestroy(scheduler);
  1322     CleanupStack::PopAndDestroy(scheduler);
  1321 
  1323 
  1322     TRACE_PRN_N(_L("TMS->RunServerL - TMS server closed"));
  1324     TRACE_PRN_N(_L("TMS->RunServerL - TMS server closed"));
  1323     }
  1325     }
  1324 
  1326 
  1563     __UHEAP_MARK;
  1565     __UHEAP_MARK;
  1564     CTrapCleanup* cleanup = CTrapCleanup::New();
  1566     CTrapCleanup* cleanup = CTrapCleanup::New();
  1565     TInt r = KErrNoMemory;
  1567     TInt r = KErrNoMemory;
  1566     if (cleanup)
  1568     if (cleanup)
  1567         {
  1569         {
  1568         TRAP(r, RunServerL());
  1570         TRAP(r, TMSServer::RunServerL());
  1569         delete cleanup;
  1571         delete cleanup;
  1570         }
  1572         }
  1571     __UHEAP_MARKEND;
  1573     __UHEAP_MARKEND;
  1572     return r;
  1574     return r;
  1573     }
  1575     }