24 |
24 |
25 #include <caservice.h> |
25 #include <caservice.h> |
26 |
26 |
27 int main(int argc, char *argv[]) |
27 int main(int argc, char *argv[]) |
28 { |
28 { |
29 QApplication app(argc, argv); |
29 RSemaphore semaphore; |
30 |
30 int errNo( semaphore.CreateGlobal(KTsServerReadySemaphore, 0) ); |
31 // hide server from TaskSwitcher |
31 if (KErrNone == errNo) { |
32 CEikonEnv * env = CEikonEnv::Static(); |
32 QApplication app(argc, argv); |
33 if(env) { |
33 // maintain instance of caservice (needed for getting application icons) |
|
34 QSharedPointer<CaService> service = CaService::instance(); |
|
35 TRAP(errNo, |
|
36 // hide server from TaskSwitcher |
|
37 CEikonEnv * env = CEikonEnv::Static(); |
|
38 User::LeaveIfNull( env ); |
34 env->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNeverAtFront); |
39 env->RootWin().SetOrdinalPosition(0, ECoeWinPriorityNeverAtFront); |
35 |
40 CApaWindowGroupName *wgName = CApaWindowGroupName::NewLC(env->WsSession()); |
36 CApaWindowGroupName *wgName = CApaWindowGroupName::NewLC(env->WsSession()); |
|
37 wgName->SetHidden(ETrue); // hides us from FSW and protects us from OOM FW etc. |
41 wgName->SetHidden(ETrue); // hides us from FSW and protects us from OOM FW etc. |
38 wgName->SetSystem(ETrue); // Allow only application with PowerManagement cap to shut us down |
42 wgName->SetSystem(ETrue); // Allow only application with PowerManagement cap to shut us down |
39 wgName->SetCaptionL(KRunningAppServerName); |
43 wgName->SetCaptionL(KRunningAppServerName); |
40 wgName->SetWindowGroupName(env->RootWin()); |
44 wgName->SetWindowGroupName(env->RootWin()); |
41 CleanupStack::PopAndDestroy(wgName); |
45 CleanupStack::PopAndDestroy(wgName); |
|
46 CServer2* serverObject = CTsRunningAppServer::NewLC(); |
|
47 semaphore.Signal(); |
|
48 QT_TRYCATCH_LEAVING(errNo = app.exec()); |
|
49 User::LeaveIfError(errNo); |
|
50 CleanupStack::PopAndDestroy(serverObject); |
|
51 )//TRAP |
|
52 semaphore.Close(); |
42 } |
53 } |
43 |
54 return errNo; |
44 // maintain instance of caservice (needed for getting application icons) |
|
45 QSharedPointer<CaService> service = CaService::instance(); |
|
46 |
|
47 CServer2* serverObject = CTsRunningAppServer::NewLC(); |
|
48 CleanupStack::Pop(serverObject); |
|
49 |
|
50 RSemaphore semaphore; |
|
51 if (KErrNone == semaphore.OpenGlobal(KTsServerReadySemaphore)) { |
|
52 semaphore.Signal(); |
|
53 } |
|
54 semaphore.Close(); |
|
55 |
|
56 int result = app.exec(); |
|
57 |
|
58 delete serverObject; |
|
59 return result; |
|
60 } |
55 } |