43 * value: error |
43 * value: error |
44 * |
44 * |
45 *----------------------------------------------------------*/ |
45 *----------------------------------------------------------*/ |
46 EXPORT_C TInt REventMediator::Connect(void) |
46 EXPORT_C TInt REventMediator::Connect(void) |
47 { |
47 { |
48 static const TUint KMaxRetryCount = 2; |
|
49 TInt ret = KErrNone; |
48 TInt ret = KErrNone; |
50 TRAP(ret, CreateListenedEventsListL()); |
49 TRAP(ret, CreateListenedEventsListL()); |
51 if (ret == KErrNone) |
50 if (ret != KErrNone) |
52 { |
51 { |
53 for (TUint i = 0; i < KMaxRetryCount; i++) |
52 return ret; |
54 { |
53 } |
55 ret = CreateSession(KEventMediatorServer, |
54 |
56 TVersion(KEventMediatorMajorVersionNumber, |
55 TInt retry=2; |
57 KEventMediatorMinorVersionNumber, |
56 for (;;) |
58 KEventMediatorBuildVersionNumber), |
57 { |
59 2 * KDefaultMessageSlots); |
58 TInt r=CreateSession(KEventMediatorServer, |
60 |
59 TVersion(KEventMediatorMajorVersionNumber, |
61 if ( ret == KErrNotFound ) |
60 KEventMediatorMinorVersionNumber, |
62 { |
61 KEventMediatorBuildVersionNumber), |
63 //do nothing |
62 2 * KDefaultMessageSlots); |
64 } |
63 |
65 else if ( ret == KErrServerTerminated ) |
64 if (r!=KErrNotFound && r!=KErrServerTerminated) |
66 { |
65 return r; |
67 //Wait for one second so that the Eventmed |
66 if (--retry==0) |
68 //and sit has sufficient time to go down. |
67 return r; |
69 User::After(500000); |
68 r = Launcher::LaunchServer(KEventMediatorServer, KEventMediatorFile, |
70 } |
69 KEventMediatorUid3); |
71 else |
70 |
72 { |
71 if (r!=KErrNone && r!=KErrAlreadyExists) |
73 break; |
72 return r; |
74 } |
73 } |
75 |
|
76 ret = Launcher::LaunchServer(KEventMediatorServer, KEventMediatorFile, |
|
77 KEventMediatorUid3); |
|
78 |
|
79 if ( ret != KErrNone && ret !=KErrAlreadyExists) |
|
80 { |
|
81 break; |
|
82 } |
|
83 } |
|
84 } |
|
85 return ret; |
|
86 } |
74 } |
87 |
75 |
88 void REventMediator::CreateListenedEventsListL() |
76 void REventMediator::CreateListenedEventsListL() |
89 { |
77 { |
90 iListenedEvents = new (ELeave) CArrayFixFlat<CEventListener*>(1); |
78 iListenedEvents = new (ELeave) CArrayFixFlat<CEventListener*>(1); |
118 |
106 |
119 if(status==KErrNone) |
107 if(status==KErrNone) |
120 { |
108 { |
121 LOG(Log::Printf(_L("REventMediator::ListenToEvent(TEventType aType, MEventObserver& aObserver) - calling SendReceive\n"))); |
109 LOG(Log::Printf(_L("REventMediator::ListenToEvent(TEventType aType, MEventObserver& aObserver) - calling SendReceive\n"))); |
122 |
110 |
123 SendReceive(KEventMediatorListen, |
111 SendReceive(CEventMediatorSession::KEventMediatorListen, |
124 TIpcArgs(aType, |
112 TIpcArgs(aType, |
125 &(listener->iDataLengthPckg), |
113 &(listener->iDataLengthPckg), |
126 &(listener->iSrvDataPtrPckg)), |
114 &(listener->iSrvDataPtrPckg)), |
127 listener->iStatus); |
115 listener->iStatus); |
128 |
116 |
151 |
139 |
152 if(status==KErrNone) |
140 if(status==KErrNone) |
153 { |
141 { |
154 LOG(Log::Printf(_L("REventMediator::ListenToEvent(TEventType aType, TDesC8& aEventSpec, MEventObserver& aObserver) - calling SendReceive\n"))); |
142 LOG(Log::Printf(_L("REventMediator::ListenToEvent(TEventType aType, TDesC8& aEventSpec, MEventObserver& aObserver) - calling SendReceive\n"))); |
155 |
143 |
156 SendReceive(KEventMediatorListenWithSpec, |
144 SendReceive(CEventMediatorSession::KEventMediatorListenWithSpec, |
157 TIpcArgs(aType, |
145 TIpcArgs(aType, |
158 &(listener->iDataLengthPckg), |
146 &(listener->iDataLengthPckg), |
159 &(listener->iSrvDataPtrPckg), |
147 &(listener->iSrvDataPtrPckg), |
160 listener->iSpecBuf), |
148 listener->iSpecBuf), |
161 listener->iStatus); |
149 listener->iStatus); |
208 } |
196 } |
209 } |
197 } |
210 |
198 |
211 EXPORT_C TInt REventMediator::ReportEvent(TEventType aType) |
199 EXPORT_C TInt REventMediator::ReportEvent(TEventType aType) |
212 { |
200 { |
213 return SendReceive(KEventMediatorReportEvent, TIpcArgs(aType, 0, NULL)); |
201 return SendReceive(CEventMediatorSession::KEventMediatorReportEvent, TIpcArgs(aType, 0, NULL)); |
214 } |
202 } |
215 |
203 |
216 EXPORT_C TInt REventMediator::ReportEvent(TEventType aType, TDesC8& aData) |
204 EXPORT_C TInt REventMediator::ReportEvent(TEventType aType, TDesC8& aData) |
217 { |
205 { |
218 return SendReceive(KEventMediatorReportEvent, TIpcArgs(aType, aData.Length(), &aData)); |
206 return SendReceive(CEventMediatorSession::KEventMediatorReportEvent, TIpcArgs(aType, aData.Length(), &aData)); |
219 } |
207 } |
220 |
208 |
221 EXPORT_C TInt REventMediator::ReportEvent(TEventType aType, TDesC8& aEventSpec, TDesC8& aData) |
209 EXPORT_C TInt REventMediator::ReportEvent(TEventType aType, TDesC8& aEventSpec, TDesC8& aData) |
222 { |
210 { |
223 return SendReceive(KEventMediatorReportEventWithSpec, TIpcArgs(aType, aData.Length(), &aData, &aEventSpec)); |
211 return SendReceive(CEventMediatorSession::KEventMediatorReportEventWithSpec, TIpcArgs(aType, aData.Length(), &aData, &aEventSpec)); |
224 } |
212 } |
225 |
213 |
226 EXPORT_C TInt REventMediator::ReportLogEvent(TUid& aSrc, TLogCategory aCategory, TUint aMsgId, TInt aDesCount,...) |
214 EXPORT_C TInt REventMediator::ReportLogEvent(TUid& aSrc, TLogCategory aCategory, TUint aMsgId, TInt aDesCount,...) |
227 { |
215 { |
228 VA_LIST list; |
216 VA_LIST list; |
274 EXPORT_C TInt REventMediator::NewEventSpecId() |
262 EXPORT_C TInt REventMediator::NewEventSpecId() |
275 { |
263 { |
276 TInt specId = 0; |
264 TInt specId = 0; |
277 TPckg<TInt> specIdDes(specId); |
265 TPckg<TInt> specIdDes(specId); |
278 |
266 |
279 SendReceive(KEventMediatorNewEventSpecId, TIpcArgs(&specIdDes)); |
267 SendReceive(CEventMediatorSession::KEventMediatorNewEventSpecId, TIpcArgs(&specIdDes)); |
280 |
268 |
281 return specId; |
269 return specId; |
282 } |
270 } |
283 |
271 |
284 void REventMediator::CancelListenToEvent(TEventType aType) |
272 void REventMediator::CancelListenToEvent(TEventType aType) |
285 { |
273 { |
286 LOG(Log::Printf(_L("REventMediator::CancelListenToEvent(TEventType aType)\n"))); |
274 LOG(Log::Printf(_L("REventMediator::CancelListenToEvent(TEventType aType)\n"))); |
287 |
275 |
288 SendReceive(KEventMediatorCancel, TIpcArgs(aType)); |
276 SendReceive(CEventMediatorSession::KEventMediatorCancel, TIpcArgs(aType)); |
289 } |
277 } |
290 |
278 |
291 TInt REventMediator::CancelListenToEvent(TEventType aType, TDesC8& aEventSpec) |
279 TInt REventMediator::CancelListenToEvent(TEventType aType, TDesC8& aEventSpec) |
292 { |
280 { |
293 LOG(Log::Printf(_L("REventMediator::CancelListenToEvent(TEventType aType, TDesC8& aEventSpec)\n"))); |
281 LOG(Log::Printf(_L("REventMediator::CancelListenToEvent(TEventType aType, TDesC8& aEventSpec)\n"))); |
294 |
282 |
295 return SendReceive(KEventMediatorCancelWithSpec, TIpcArgs(aType, NULL, NULL, &aEventSpec)); |
283 return SendReceive(CEventMediatorSession::KEventMediatorCancelWithSpec, TIpcArgs(aType, NULL, NULL, &aEventSpec)); |
296 } |
284 } |
297 |
285 |
298 TInt REventMediator::FetchData(TAny* aSrvPtr, TDes8& aDataPtr) |
286 TInt REventMediator::FetchData(TAny* aSrvPtr, TDes8& aDataPtr) |
299 { |
287 { |
300 LOG(Log::Printf(_L("REventMediator::FetchData()\n"))); |
288 LOG(Log::Printf(_L("REventMediator::FetchData()\n"))); |
301 |
289 |
302 TRequestStatus status; |
290 TRequestStatus status; |
303 SendReceive(KEventMediatorFetchData, |
291 SendReceive(CEventMediatorSession::KEventMediatorFetchData, |
304 TIpcArgs(aSrvPtr, &aDataPtr), status); |
292 TIpcArgs(aSrvPtr, &aDataPtr), status); |
305 User::WaitForRequest(status); |
293 User::WaitForRequest(status); |
306 |
294 |
307 LOG_1("REventMediator::FetchData() - SendReceive called, status: %d\n",status.Int()); |
295 LOG_1("REventMediator::FetchData() - SendReceive called, status: %d\n",status.Int()); |
308 return status.Int(); |
296 return status.Int(); |
385 return KErrNone; |
373 return KErrNone; |
386 } |
374 } |
387 |
375 |
388 EXPORT_C TInt REventMediator::DeletePrivateFiles() |
376 EXPORT_C TInt REventMediator::DeletePrivateFiles() |
389 { |
377 { |
390 return SendReceive (KEventMediatorDeletePrivateFiles, TIpcArgs()); |
378 return SendReceive (CEventMediatorSession::KEventMediatorDeletePrivateFiles, TIpcArgs()); |
391 } |
379 } |
392 |
380 |
393 |
381 |
394 EXPORT_C TInt REventMediator::GetEventLogSize(TInt& aEventLogSize) |
382 EXPORT_C TInt REventMediator::GetEventLogSize(TInt& aEventLogSize) |
395 { |
383 { |
396 TPckg<TInt> eventLogSizePckg(aEventLogSize); |
384 TPckg<TInt> eventLogSizePckg(aEventLogSize); |
397 |
385 |
398 return SendReceive (KEventMediatorGetEventLogSize, |
386 return SendReceive (CEventMediatorSession::KEventMediatorGetEventLogSize, |
399 TIpcArgs(&eventLogSizePckg)); |
387 TIpcArgs(&eventLogSizePckg)); |
400 } |
388 } |
401 |
389 |
402 EXPORT_C TInt REventMediator::GetEventLogHeader(TDes8& aEventLogHeader) |
390 EXPORT_C TInt REventMediator::GetEventLogHeader(TDes8& aEventLogHeader) |
403 { |
391 { |
404 return SendReceive (KEventMediatorGetEventLogHeader, |
392 return SendReceive (CEventMediatorSession::KEventMediatorGetEventLogHeader, |
405 TIpcArgs(&aEventLogHeader)); |
393 TIpcArgs(&aEventLogHeader)); |
406 } |
394 } |
407 |
395 |
408 EXPORT_C TInt REventMediator::GetEventLogData(TDes8& aEventLogData) |
396 EXPORT_C TInt REventMediator::GetEventLogData(TDes8& aEventLogData) |
409 { |
397 { |
410 return SendReceive (KEventMediatorGetEventLogData, |
398 return SendReceive (CEventMediatorSession::KEventMediatorGetEventLogData, |
411 TIpcArgs(&aEventLogData)); |
399 TIpcArgs(&aEventLogData)); |
412 } |
400 } |
413 |
401 |
414 EXPORT_C TInt REventMediator::ClearEventLog() |
402 EXPORT_C TInt REventMediator::ClearEventLog() |
415 { |
403 { |
416 return SendReceive (KEventMediatorClearEventLog, TIpcArgs()); |
404 return SendReceive (CEventMediatorSession::KEventMediatorClearEventLog, TIpcArgs()); |
417 } |
405 } |
418 |
406 |
419 |
407 |
420 void CEventListener::DoCancel() |
408 void CEventListener::DoCancel() |
421 { |
409 { |