40 // ----------------------------------------------------------------------------- |
40 // ----------------------------------------------------------------------------- |
41 // TMSServer::NewL |
41 // TMSServer::NewL |
42 // |
42 // |
43 // ----------------------------------------------------------------------------- |
43 // ----------------------------------------------------------------------------- |
44 // |
44 // |
45 TMSServer* TMSServer::NewL() |
45 TMSServer* TMSServer::NewLC() |
46 { |
46 { |
47 TMSServer* self = new (ELeave) TMSServer; |
47 TMSServer* self = new (ELeave) TMSServer; |
48 CleanupStack::PushL(self); |
48 CleanupStack::PushL(self); |
49 self->ConstructL(); |
49 self->ConstructL(); |
50 CleanupStack::Pop(self); |
|
51 return self; |
50 return self; |
52 } |
51 } |
53 |
52 |
54 // ----------------------------------------------------------------------------- |
53 // ----------------------------------------------------------------------------- |
55 // TMSServer::TMSServer |
54 // TMSServer::TMSServer |
858 TRACE_PRN_FN_EXT; |
857 TRACE_PRN_FN_EXT; |
859 return status; |
858 return status; |
860 } |
859 } |
861 |
860 |
862 // ----------------------------------------------------------------------------- |
861 // ----------------------------------------------------------------------------- |
863 // RunServerL |
862 // TMSServer::RunServerL |
864 // |
863 // |
865 // ----------------------------------------------------------------------------- |
864 // ----------------------------------------------------------------------------- |
866 // |
865 // |
867 static void RunServerL() |
866 void TMSServer::RunServerL() |
868 { |
867 { |
869 TRACE_PRN_N(_L("TMS->RunServerL")); |
868 TRACE_PRN_N(_L("TMS->RunServerL")); |
|
869 |
|
870 // Naming the server thread after the server helps to debug panics |
|
871 User::LeaveIfError(User::RenameThread(KTMSServerName)); |
870 |
872 |
871 // Create and install the active scheduler we need |
873 // Create and install the active scheduler we need |
872 CActiveScheduler* scheduler = new (ELeave) CActiveScheduler; |
874 CActiveScheduler* scheduler = new (ELeave) CActiveScheduler; |
873 CleanupStack::PushL(scheduler); |
875 CleanupStack::PushL(scheduler); |
874 CActiveScheduler::Install(scheduler); |
876 CActiveScheduler::Install(scheduler); |
875 |
877 |
876 // Create the server (leave it on the cleanup stack) |
878 // Create the server (leave it on the cleanup stack) |
877 TMSServer* server = TMSServer::NewL(); |
879 TMSServer* server = TMSServer::NewLC(); |
878 |
880 |
879 // Initialisation complete, now signal the client |
881 // Initialisation complete, now signal the client |
880 RProcess::Rendezvous(TMS_RESULT_SUCCESS); |
882 RProcess::Rendezvous(TMS_RESULT_SUCCESS); |
881 |
883 |
882 // Start the scheduler and wait for client requests |
884 // Start the scheduler and wait for client requests |
883 CActiveScheduler::Start(); |
885 CActiveScheduler::Start(); |
884 |
886 |
885 // Ready to exit. |
887 // Ready to exit. |
886 // Cleanup scheduler and delete the server |
888 // Cleanup scheduler and delete the server |
887 delete server; |
889 CleanupStack::PopAndDestroy(server); |
888 CleanupStack::PopAndDestroy(scheduler); |
890 CleanupStack::PopAndDestroy(scheduler); |
889 |
891 |
890 TRACE_PRN_N(_L("TMS->RunServerL - TMS server closed")); |
892 TRACE_PRN_N(_L("TMS->RunServerL - TMS server closed")); |
891 } |
893 } |
892 |
894 |