1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
77 } // CSmspMessageQueue::~CSmspMessageQueue |
83 } // CSmspMessageQueue::~CSmspMessageQueue |
78 |
84 |
79 |
85 |
80 void CSmspMessageQueue::DoRunL() |
86 void CSmspMessageQueue::DoRunL() |
81 { |
87 { |
82 LOGSMSPROT1("CSmspMessageQueue::DoRunL()"); |
88 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_DORUNL_1, "CSmspMessageQueue::DoRunL()"); |
83 |
89 |
84 CompleteFirst(iStatus.Int()); |
90 CompleteFirst(iStatus.Int()); |
85 Start(); |
91 Start(); |
86 } // CSmspMessageQueue::DoRunL |
92 } // CSmspMessageQueue::DoRunL |
87 |
93 |
88 |
94 |
89 void CSmspMessageQueue::Queue(CSmsMessage* aMessage, MSmsMessageObserver& aObserver, TUint aOptions) |
95 void CSmspMessageQueue::Queue(CSmsMessage* aMessage, MSmsMessageObserver& aObserver, TUint aOptions) |
90 { |
96 { |
91 TRAPD(err, DoQueueL(aMessage, aObserver, aOptions)); |
97 TRAPD(err, DoQueueL(aMessage, aObserver, aOptions)); |
92 |
98 |
93 LOGSMSPROT4("*** CSmspMessageQueue::Queue [err=%d aObserver=0x%08x IsActive=%d]", err, &aObserver, IsActive()); |
99 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_QUEUE_1, "*** CSmspMessageQueue::Queue [err=%d aObserver=0x%08x IsActive=%d]", err, (TUint) &aObserver, IsActive()); |
94 |
100 |
95 if (err != KErrNone) |
101 if (err != KErrNone) |
96 { |
102 { |
97 CompleteObserver(aObserver, err); |
103 CompleteObserver(aObserver, err); |
98 } |
104 } |
103 } // CSmspMessageQueue::Queue |
109 } // CSmspMessageQueue::Queue |
104 |
110 |
105 |
111 |
106 void CSmspMessageQueue::DoQueueL(CSmsMessage* aMessage, MSmsMessageObserver& aObserver, TUint aOptions) |
112 void CSmspMessageQueue::DoQueueL(CSmsMessage* aMessage, MSmsMessageObserver& aObserver, TUint aOptions) |
107 { |
113 { |
108 LOGSMSPROT1("CSmspMessageQueue::DoQueueL()"); |
114 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_DOQUEUEL_1, "CSmspMessageQueue::DoQueueL()"); |
109 |
115 |
110 CleanupStack::PushL(aMessage); |
116 CleanupStack::PushL(aMessage); |
111 |
117 |
112 CQueuedSmsMessage* queuedsmsmessage= new (ELeave) CQueuedSmsMessage(aMessage, aObserver, aOptions); |
118 CQueuedSmsMessage* queuedsmsmessage= new (ELeave) CQueuedSmsMessage(aMessage, aObserver, aOptions); |
113 |
119 |
130 /** |
136 /** |
131 * Completes all items in the queue with KErrCancel |
137 * Completes all items in the queue with KErrCancel |
132 */ |
138 */ |
133 void CSmspMessageQueue::DoCancel() |
139 void CSmspMessageQueue::DoCancel() |
134 { |
140 { |
135 LOGSMSPROT1("*** CSmspMessageQueue::DoCancel"); |
141 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_DOCANCEL_1, "*** CSmspMessageQueue::DoCancel"); |
136 |
142 |
137 TSglQueIter<CQueuedSmsMessage> iter(iMessageQueue); |
143 TSglQueIter<CQueuedSmsMessage> iter(iMessageQueue); |
138 CQueuedSmsMessage* queuedsmsmessage = iter; |
144 CQueuedSmsMessage* queuedsmsmessage = iter; |
139 |
145 |
140 if ( queuedsmsmessage!=NULL ) |
146 if ( queuedsmsmessage!=NULL ) |
144 } // CSmspMessageQueue::DoCancel |
150 } // CSmspMessageQueue::DoCancel |
145 |
151 |
146 |
152 |
147 void CSmspMessageQueue::CompleteFirst(TInt aStatus) |
153 void CSmspMessageQueue::CompleteFirst(TInt aStatus) |
148 { |
154 { |
149 LOGSMSPROT1("CSmspMessageQueue::CompleteFirst()"); |
155 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_COMPLETEFIRST_1, "CSmspMessageQueue::CompleteFirst()"); |
150 |
156 |
151 CompleteRequest(iMessageQueue.First(), aStatus); |
157 CompleteRequest(iMessageQueue.First(), aStatus); |
152 } // CSmspMessageQueue::CompleteFirst |
158 } // CSmspMessageQueue::CompleteFirst |
153 |
159 |
154 |
160 |
155 void CSmspMessageQueue::CompleteRequest(CQueuedSmsMessage* aQueuedMessage, TInt aStatus) |
161 void CSmspMessageQueue::CompleteRequest(CQueuedSmsMessage* aQueuedMessage, TInt aStatus) |
156 { |
162 { |
157 LOGSMSPROT4("*** CSmspMessageQueue::CompleteRequest [aStatus=%d aObserver=0x%X IsFirst=%d]", aStatus, &aQueuedMessage->iObserver, iMessageQueue.IsFirst(aQueuedMessage)); |
163 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_COMPLETEREQUEST_1, "*** CSmspMessageQueue::CompleteRequest [aStatus=%d aObserver=0x%X IsFirst=%d]", aStatus,(TUint) &aQueuedMessage->iObserver, iMessageQueue.IsFirst(aQueuedMessage)); |
158 |
164 |
159 // From defect HOE-563KLY, need to cancel request if active and remove from queue |
165 // From defect HOE-563KLY, need to cancel request if active and remove from queue |
160 // before observer has chance to manipulate queue |
166 // before observer has chance to manipulate queue |
161 CancelRequestIfObserved(aQueuedMessage->iObserver); |
167 CancelRequestIfObserved(aQueuedMessage->iObserver); |
162 iMessageQueue.Remove(*aQueuedMessage); |
168 iMessageQueue.Remove(*aQueuedMessage); |
165 } // CSmspMessageQueue::CompleteRequest |
171 } // CSmspMessageQueue::CompleteRequest |
166 |
172 |
167 |
173 |
168 void CSmspMessageQueue::CancelObserver(MSmsMessageObserver& aObserver) |
174 void CSmspMessageQueue::CancelObserver(MSmsMessageObserver& aObserver) |
169 { |
175 { |
170 LOGSMSPROT2("*** CSmspMessageQueue::CancelObserver [aObserver=0x%X]", &aObserver); |
176 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPMESSAGEQUEUE_CANCELOBSERVER_1, "*** CSmspMessageQueue::CancelObserver [aObserver=0x%X]", &aObserver); |
171 |
177 |
172 TSglQueIter<CQueuedSmsMessage> iter(iMessageQueue); |
178 TSglQueIter<CQueuedSmsMessage> iter(iMessageQueue); |
173 CQueuedSmsMessage* queuedsmsmessage = iter; |
179 CQueuedSmsMessage* queuedsmsmessage = iter; |
174 |
180 |
175 for (; queuedsmsmessage!=NULL; queuedsmsmessage = iter++) |
181 for (; queuedsmsmessage!=NULL; queuedsmsmessage = iter++) |
218 * @param aObserver the observer to notify on completion. |
224 * @param aObserver the observer to notify on completion. |
219 * |
225 * |
220 */ |
226 */ |
221 CQueuedPDUDelete* CQueuedPDUDelete::NewL(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray,MSmsMessageObserver* aObserver) |
227 CQueuedPDUDelete* CQueuedPDUDelete::NewL(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray,MSmsMessageObserver* aObserver) |
222 { |
228 { |
223 LOGSMSPROT1("CQueuedPDUDelete::NewL()"); |
229 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CQUEUEDPDUDELETE_NEWL_1, "CQueuedPDUDelete::NewL()"); |
224 |
230 |
225 CQueuedPDUDelete* queuedpdudelete=new(ELeave) CQueuedPDUDelete(aObserver); |
231 CQueuedPDUDelete* queuedpdudelete=new(ELeave) CQueuedPDUDelete(aObserver); |
226 CleanupStack::PushL(queuedpdudelete); |
232 CleanupStack::PushL(queuedpdudelete); |
227 queuedpdudelete->ConstructL(aSlotArray); |
233 queuedpdudelete->ConstructL(aSlotArray); |
228 CleanupStack::Pop(); |
234 CleanupStack::Pop(); |
247 * the internal array. |
253 * the internal array. |
248 * |
254 * |
249 */ |
255 */ |
250 void CQueuedPDUDelete::ConstructL(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray) |
256 void CQueuedPDUDelete::ConstructL(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray) |
251 { |
257 { |
252 LOGSMSPROT1("CQueuedPDUDelete::ConstructL()"); |
258 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CQUEUEDPDUDELETE_CONSTRUCTL_1, "CQueuedPDUDelete::ConstructL()"); |
253 |
259 |
254 TInt count=aSlotArray.Count(); |
260 TInt count=aSlotArray.Count(); |
255 for (TInt i=0; i<count; i++) |
261 for (TInt i=0; i<count; i++) |
256 iLocationArray.AppendL(aSlotArray[i]); |
262 iLocationArray.AppendL(aSlotArray[i]); |
257 } // CQueuedPDUDelete::ConstructL |
263 } // CQueuedPDUDelete::ConstructL |
297 |
303 |
298 void CSmspDeleteQueue::DoRunL() |
304 void CSmspDeleteQueue::DoRunL() |
299 { |
305 { |
300 // Ignore in code coverage - the delete queue implements its own RunL. |
306 // Ignore in code coverage - the delete queue implements its own RunL. |
301 BULLSEYE_OFF |
307 BULLSEYE_OFF |
302 LOGSMSPROT1("CSmspDeleteQueue::DoRunL()"); |
308 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_DORUNL_1, "CSmspDeleteQueue::DoRunL()"); |
303 |
309 |
304 // This CSmspDeleteQueue::DoRunL() function would be called by |
310 // This CSmspDeleteQueue::DoRunL() function would be called by |
305 // CSmsuActiveBase::RunL(). However, CSmspDeleteQueue::RunL() now |
311 // CSmsuActiveBase::RunL(). However, CSmspDeleteQueue::RunL() now |
306 // overwrites CSmsuActiveBase::RunL(), to make sure the delete queue is |
312 // overwrites CSmsuActiveBase::RunL(), to make sure the delete queue is |
307 // not used after the CloseNowWrap() call. Therefore, this is now a |
313 // not used after the CloseNowWrap() call. Therefore, this is now a |
311 |
317 |
312 void CSmspDeleteQueue::Queue(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray, MSmsMessageObserver* aObserver) |
318 void CSmspDeleteQueue::Queue(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray, MSmsMessageObserver* aObserver) |
313 { |
319 { |
314 TRAPD(err, DoQueueL(aSlotArray, aObserver)); |
320 TRAPD(err, DoQueueL(aSlotArray, aObserver)); |
315 |
321 |
316 LOGSMSPROT4("*** CSmspDeleteQueue::Queue [err=%d aObserver=0x%X IsActive=%d]", err, aObserver, IsActive()); |
322 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_QUEUE_1, "*** CSmspDeleteQueue::Queue [err=%d aObserver=0x%X IsActive=%d]", err, (TUint)aObserver, IsActive()); |
317 |
323 |
318 if (err != KErrNone) |
324 if (err != KErrNone) |
319 { |
325 { |
320 if (aObserver != NULL) |
326 if (aObserver != NULL) |
321 { |
327 { |
327 } // CSmspDeleteQueue::Queue |
333 } // CSmspDeleteQueue::Queue |
328 |
334 |
329 |
335 |
330 void CSmspDeleteQueue::DoQueueL(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray, MSmsMessageObserver* aObserver) |
336 void CSmspDeleteQueue::DoQueueL(const CArrayFix<TGsmSmsSlotEntry>& aSlotArray, MSmsMessageObserver* aObserver) |
331 { |
337 { |
332 LOGSMSPROT1("CSmspDeleteQueue::DoQueueL()"); |
338 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_DOQUEUEL_1, "CSmspDeleteQueue::DoQueueL()"); |
333 |
339 |
334 CQueuedPDUDelete* queuedDelete= CQueuedPDUDelete::NewL(aSlotArray, aObserver); |
340 CQueuedPDUDelete* queuedDelete= CQueuedPDUDelete::NewL(aSlotArray, aObserver); |
335 iDeleteQueue.AddLast(*queuedDelete); |
341 iDeleteQueue.AddLast(*queuedDelete); |
336 } // CSmspDeleteQueue::DoQueueL |
342 } // CSmspDeleteQueue::DoQueueL |
337 |
343 |
338 |
344 |
339 CSmspDeleteQueue::CSmspDeleteQueue(MSmsComm& aSmsComm, TInt aPriority) |
345 CSmspDeleteQueue::CSmspDeleteQueue(MSmsComm& aSmsComm, TInt aPriority) |
340 : CSmspProtocolQueue(aSmsComm, aPriority) |
346 : CSmspProtocolQueue(aSmsComm, aPriority) |
341 { |
347 { |
342 LOGSMSPROT1("CSmspDeleteQueue::CSmspDeleteQueue()"); |
348 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_CTOR_1, "CSmspDeleteQueue::CSmspDeleteQueue()"); |
343 |
349 |
344 iDeleteQueue.SetOffset(_FOFF(CQueuedPDUDelete,iLink)); |
350 iDeleteQueue.SetOffset(_FOFF(CQueuedPDUDelete,iLink)); |
345 } // CSmspDeleteQueue::CSmspDeleteQueue |
351 } // CSmspDeleteQueue::CSmspDeleteQueue |
346 |
352 |
347 |
353 |
348 /** |
354 /** |
349 * Completes all items in the queue with KErrCancel |
355 * Completes all items in the queue with KErrCancel |
350 */ |
356 */ |
351 void CSmspDeleteQueue::DoCancel() |
357 void CSmspDeleteQueue::DoCancel() |
352 { |
358 { |
353 LOGSMSPROT1("*** CSmspDeleteQueue::DoCancel"); |
359 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_DOCANCEL_1, "*** CSmspDeleteQueue::DoCancel"); |
354 |
360 |
355 iSmsPDUDelete->Cancel(); |
361 iSmsPDUDelete->Cancel(); |
356 |
362 |
357 while (!iDeleteQueue.IsEmpty()) |
363 while (!iDeleteQueue.IsEmpty()) |
358 { |
364 { |
362 } // CSmspDeleteQueue::DoCancel |
368 } // CSmspDeleteQueue::DoCancel |
363 |
369 |
364 |
370 |
365 void CSmspDeleteQueue::CompleteFirst(TInt aStatus) |
371 void CSmspDeleteQueue::CompleteFirst(TInt aStatus) |
366 { |
372 { |
367 LOGSMSPROT1("CSmspDeleteQueue::CompleteFirst()"); |
373 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_COMPLETEFIRST_1, "CSmspDeleteQueue::CompleteFirst()"); |
368 |
374 |
369 CompleteRequest(iDeleteQueue.First(), aStatus); |
375 CompleteRequest(iDeleteQueue.First(), aStatus); |
370 } // CSmspDeleteQueue::CompleteFirst |
376 } // CSmspDeleteQueue::CompleteFirst |
371 |
377 |
372 |
378 |
373 void CSmspDeleteQueue::CompleteRequest(CQueuedPDUDelete* aQueuedDelete, TInt aStatus) |
379 void CSmspDeleteQueue::CompleteRequest(CQueuedPDUDelete* aQueuedDelete, TInt aStatus) |
374 { |
380 { |
375 LOGSMSPROT4("*** CSmspDeleteQueue::CompleteRequest [aStatus=%d aObserver=0x%X IsFirst=%d]", aStatus, aQueuedDelete->iObserver, iDeleteQueue.IsFirst(aQueuedDelete)); |
381 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_COMPLETEREQUEST_1, "*** CSmspDeleteQueue::CompleteRequest [aStatus=%d aObserver=0x%X IsFirst=%d]", aStatus, (TUint)aQueuedDelete->iObserver, iDeleteQueue.IsFirst(aQueuedDelete)); |
376 |
382 |
377 if (aQueuedDelete->iObserver != NULL) |
383 if (aQueuedDelete->iObserver != NULL) |
378 CompleteObserver(*aQueuedDelete->iObserver, aStatus); |
384 CompleteObserver(*aQueuedDelete->iObserver, aStatus); |
379 |
385 |
380 iDeleteQueue.Remove(*aQueuedDelete); |
386 iDeleteQueue.Remove(*aQueuedDelete); |
382 } // CSmspDeleteQueue::CompleteRequest |
388 } // CSmspDeleteQueue::CompleteRequest |
383 |
389 |
384 |
390 |
385 void CSmspDeleteQueue::CancelObserver(MSmsMessageObserver& aObserver) |
391 void CSmspDeleteQueue::CancelObserver(MSmsMessageObserver& aObserver) |
386 { |
392 { |
387 LOGSMSPROT2("*** CSmspDeleteQueue::CancelObserver [aObserver=0x%X]", &aObserver); |
393 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_CANCELOBSERVER_1, "*** CSmspDeleteQueue::CancelObserver [aObserver=0x%X]", &aObserver); |
388 |
394 |
389 TSglQueIter<CQueuedPDUDelete> iter(iDeleteQueue); |
395 TSglQueIter<CQueuedPDUDelete> iter(iDeleteQueue); |
390 CQueuedPDUDelete* queuedDelete = iter; |
396 CQueuedPDUDelete* queuedDelete = iter; |
391 |
397 |
392 for (; queuedDelete!=NULL; queuedDelete = iter++) |
398 for (; queuedDelete!=NULL; queuedDelete = iter++) |
407 } // CSmspDeleteQueue::CancelObserver |
413 } // CSmspDeleteQueue::CancelObserver |
408 |
414 |
409 |
415 |
410 CSmspDeleteQueue* CSmspDeleteQueue::NewL(MSmsComm& aSmsComm, const TSmsSettings& aSmsSettings, RMobileSmsMessaging& aSmsMessaging, TInt aPriority) |
416 CSmspDeleteQueue* CSmspDeleteQueue::NewL(MSmsComm& aSmsComm, const TSmsSettings& aSmsSettings, RMobileSmsMessaging& aSmsMessaging, TInt aPriority) |
411 { |
417 { |
412 LOGSMSPROT1("CSmspDeleteQueue::NewL()"); |
418 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_NEWL_1, "CSmspDeleteQueue::NewL()"); |
413 |
419 |
414 CSmspDeleteQueue* self = new (ELeave) CSmspDeleteQueue(aSmsComm, aPriority); |
420 CSmspDeleteQueue* self = new (ELeave) CSmspDeleteQueue(aSmsComm, aPriority); |
415 CleanupStack::PushL(self); |
421 CleanupStack::PushL(self); |
416 self->ConstructL(aSmsSettings, aSmsMessaging); |
422 self->ConstructL(aSmsSettings, aSmsMessaging); |
417 CleanupStack::Pop(self); |
423 CleanupStack::Pop(self); |
419 } // CSmspDeleteQueue::NewL |
425 } // CSmspDeleteQueue::NewL |
420 |
426 |
421 |
427 |
422 void CSmspDeleteQueue::Start() |
428 void CSmspDeleteQueue::Start() |
423 { |
429 { |
424 LOGSMSPROT3("*** CSmspDeleteQueue::Start [IsActive=%d IsEmpty=%d]", IsActive(), iDeleteQueue.IsEmpty()); |
430 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_START_1, "*** CSmspDeleteQueue::Start [IsActive=%d IsEmpty=%d]", IsActive(), iDeleteQueue.IsEmpty()); |
425 |
431 |
426 if (!IsActive() && !iDeleteQueue.IsEmpty()) |
432 if (!IsActive() && !iDeleteQueue.IsEmpty()) |
427 { |
433 { |
428 CQueuedPDUDelete& queuedDelete = *iDeleteQueue.First(); |
434 CQueuedPDUDelete& queuedDelete = *iDeleteQueue.First(); |
429 iSmsPDUDelete->Start(queuedDelete.iLocationArray, iStatus); |
435 iSmsPDUDelete->Start(queuedDelete.iLocationArray, iStatus); |
447 } // CSmspDeleteQueue::~CSmspDeleteQueue |
453 } // CSmspDeleteQueue::~CSmspDeleteQueue |
448 |
454 |
449 |
455 |
450 void CSmspDeleteQueue::ConstructL(const TSmsSettings& aSmsSettings, RMobileSmsMessaging& aSmsMessaging) |
456 void CSmspDeleteQueue::ConstructL(const TSmsSettings& aSmsSettings, RMobileSmsMessaging& aSmsMessaging) |
451 { |
457 { |
452 LOGSMSPROT1("CSmspDeleteQueue::ConstructL()"); |
458 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_CONSTRUCTL_1, "CSmspDeleteQueue::ConstructL()"); |
453 |
459 |
454 iSmsPDUDelete = CSmsPDUDelete::NewL(aSmsSettings, aSmsMessaging); |
460 iSmsPDUDelete = CSmsPDUDelete::NewL(aSmsSettings, aSmsMessaging); |
455 } // CSmspDeleteQueue::ConstructL |
461 } // CSmspDeleteQueue::ConstructL |
456 |
462 |
457 |
463 |
458 void CSmspDeleteQueue::CompleteObserver(MSmsMessageObserver& aObserver, TInt aError, const CSmsMessage*) |
464 void CSmspDeleteQueue::CompleteObserver(MSmsMessageObserver& aObserver, TInt aError, const CSmsMessage*) |
459 { |
465 { |
460 LOGSMSPROT4("*** CSmspDeleteQueue::CompleteObserver [aObserver=0x%X aError=%d IsActive=%d]", &aObserver, aError, IsActive()); |
466 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPDELETEQUEUE_COMPLETEOBSERVER_1, "*** CSmspDeleteQueue::CompleteObserver [aObserver=0x%X aError=%d IsActive=%d]", (TUint)&aObserver, aError, IsActive()); |
461 |
467 |
462 if (iSmsComm.ObserverIsPresent(aObserver)) |
468 if (iSmsComm.ObserverIsPresent(aObserver)) |
463 { |
469 { |
464 aObserver.MessageDeleteCompleted(aError); |
470 aObserver.MessageDeleteCompleted(aError); |
465 } |
471 } |
471 // |
477 // |
472 // |
478 // |
473 |
479 |
474 CSmspSendQueue* CSmspSendQueue::NewL(MSmsComm& aSmsComm, CSmsSegmentationStore& aSegmentationStore, const TSmsSettings& aSmsSettings, const RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps, RMobileSmsMessaging& aSmsMessaging, TInt aPriority, CSmspSetBearer& aSmspSetBearer) |
480 CSmspSendQueue* CSmspSendQueue::NewL(MSmsComm& aSmsComm, CSmsSegmentationStore& aSegmentationStore, const TSmsSettings& aSmsSettings, const RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps, RMobileSmsMessaging& aSmsMessaging, TInt aPriority, CSmspSetBearer& aSmspSetBearer) |
475 { |
481 { |
476 LOGSMSPROT1("CSmspSendQueue::NewL()"); |
482 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPSENDQUEUE_NEWL_1, "CSmspSendQueue::NewL()"); |
477 |
483 |
478 CSmspSendQueue* self = new (ELeave) CSmspSendQueue(aSmsComm, aPriority); |
484 CSmspSendQueue* self = new (ELeave) CSmspSendQueue(aSmsComm, aPriority); |
479 CleanupStack::PushL(self); |
485 CleanupStack::PushL(self); |
480 self->ConstructL(aSegmentationStore, aSmsSettings, aMobileSmsCaps, aSmsMessaging, aSmspSetBearer); |
486 self->ConstructL(aSegmentationStore, aSmsSettings, aMobileSmsCaps, aSmsMessaging, aSmspSetBearer); |
481 CleanupStack::Pop(self); |
487 CleanupStack::Pop(self); |
483 } // CSmspSendQueue::NewL |
489 } // CSmspSendQueue::NewL |
484 |
490 |
485 |
491 |
486 void CSmspSendQueue::Start() |
492 void CSmspSendQueue::Start() |
487 { |
493 { |
488 LOGSMSPROT3("*** CSmspSendQueue::Start [IsActive=%d IsEmpty=%d]", IsActive(), iMessageQueue.IsEmpty()); |
494 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPSENDQUEUE_START_1, "*** CSmspSendQueue::Start [IsActive=%d IsEmpty=%d]", IsActive(), iMessageQueue.IsEmpty()); |
489 |
495 |
490 if (!IsActive() && !iMessageQueue.IsEmpty()) |
496 if (!IsActive() && !iMessageQueue.IsEmpty()) |
491 { |
497 { |
492 CQueuedSmsMessage& queuedMessage = *iMessageQueue.First(); |
498 CQueuedSmsMessage& queuedMessage = *iMessageQueue.First(); |
493 iSmsMessageSend->Start(*queuedMessage.iSmsMessage, queuedMessage.iOptions, queuedMessage.iObserver.GetLocalAddress(), iStatus); |
499 iSmsMessageSend->Start(*queuedMessage.iSmsMessage, queuedMessage.iOptions, queuedMessage.iObserver.GetLocalAddress(), iStatus); |
509 } // CSmspSendQueue::~CSmspSendQueue |
515 } // CSmspSendQueue::~CSmspSendQueue |
510 |
516 |
511 |
517 |
512 void CSmspSendQueue::ConstructL(CSmsSegmentationStore& aSegmentationStore, const TSmsSettings& aSmsSettings, const RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps, RMobileSmsMessaging& aSmsMessaging, CSmspSetBearer& aSmspSetBearer) |
518 void CSmspSendQueue::ConstructL(CSmsSegmentationStore& aSegmentationStore, const TSmsSettings& aSmsSettings, const RMobileSmsMessaging::TMobileSmsCapsV1& aMobileSmsCaps, RMobileSmsMessaging& aSmsMessaging, CSmspSetBearer& aSmspSetBearer) |
513 { |
519 { |
514 LOGSMSPROT1("CSmspSendQueue::ConstructL()"); |
520 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPSENDQUEUE_CONSTRUCTL_1, "CSmspSendQueue::ConstructL()"); |
515 |
521 |
516 iSmsMessageSend = CSmsMessageSend::NewL(aSegmentationStore, aSmsSettings, aMobileSmsCaps, aSmsMessaging, Priority(), aSmspSetBearer); |
522 iSmsMessageSend = CSmsMessageSend::NewL(aSegmentationStore, aSmsSettings, aMobileSmsCaps, aSmsMessaging, Priority(), aSmspSetBearer); |
517 } // CSmspSendQueue::ConstructL |
523 } // CSmspSendQueue::ConstructL |
518 |
524 |
519 |
525 |
520 void CSmspSendQueue::CancelRequestIfObserved(MSmsMessageObserver& aObserver) |
526 void CSmspSendQueue::CancelRequestIfObserved(MSmsMessageObserver& aObserver) |
521 { |
527 { |
522 LOGSMSPROT1("CSmspSendQueue::CancelRequestIfObserved()"); |
528 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPSENDQUEUE_CANCELREQUESTIFOBSERVED_1, "CSmspSendQueue::CancelRequestIfObserved()"); |
523 |
529 |
524 if (IsActive() && &iMessageQueue.First()->iObserver == &aObserver) |
530 if (IsActive() && &iMessageQueue.First()->iObserver == &aObserver) |
525 { |
531 { |
526 iSmsMessageSend->Cancel(); |
532 iSmsMessageSend->Cancel(); |
527 } |
533 } |
528 } // CSmspSendQueue::CancelRequestIfObserved |
534 } // CSmspSendQueue::CancelRequestIfObserved |
529 |
535 |
530 |
536 |
531 void CSmspSendQueue::CompleteObserver(MSmsMessageObserver& aObserver, TInt aError, const CSmsMessage*) |
537 void CSmspSendQueue::CompleteObserver(MSmsMessageObserver& aObserver, TInt aError, const CSmsMessage*) |
532 { |
538 { |
533 LOGSMSPROT4("*** CSmspSendQueue::CompleteObserver [aObserver=0x%X aError=%d IsActive=%d]", &aObserver, aError, IsActive()); |
539 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPSENDQUEUE_COMPLETEOBSERVER_1, "*** CSmspSendQueue::CompleteObserver [aObserver=0x%X aError=%d IsActive=%d]", (TUint)&aObserver, aError, IsActive()); |
534 |
540 |
535 if (iSmsComm.ObserverIsPresent(aObserver)) |
541 if (iSmsComm.ObserverIsPresent(aObserver)) |
536 { |
542 { |
537 aObserver.MessageSendCompleted(aError); |
543 aObserver.MessageSendCompleted(aError); |
538 } |
544 } |
539 } // CSmspSendQueue::CompleteObserver |
545 } // CSmspSendQueue::CompleteObserver |
540 |
546 |
541 |
547 |
542 void CSmspSendQueue::Complete(TInt aStatus) |
548 void CSmspSendQueue::Complete(TInt aStatus) |
543 { |
549 { |
544 LOGSMSPROT1("CSmspSendQueue::Complete()"); |
550 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPSENDQUEUE_COMPLETE_1, "CSmspSendQueue::Complete()"); |
545 |
551 |
546 iSmsComm.MessageSendCompleted(aStatus); |
552 iSmsComm.MessageSendCompleted(aStatus); |
547 } // CSmspSendQueue::Complete |
553 } // CSmspSendQueue::Complete |
548 |
554 |
549 |
555 |
553 // |
559 // |
554 // |
560 // |
555 |
561 |
556 CSmspWriteQueue* CSmspWriteQueue::NewL(MSmsComm& aSmsComm, const TSmsSettings& aSmsSettings, RMobilePhone& aGsmPhone, CSmsSegmentationStore& aSegmentationStore, TInt aPriority) |
562 CSmspWriteQueue* CSmspWriteQueue::NewL(MSmsComm& aSmsComm, const TSmsSettings& aSmsSettings, RMobilePhone& aGsmPhone, CSmsSegmentationStore& aSegmentationStore, TInt aPriority) |
557 { |
563 { |
558 LOGSMSPROT1("CSmspWriteQueue::NewL()"); |
564 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPWRITEQUEUE_NEWL_1, "CSmspWriteQueue::NewL()"); |
559 |
565 |
560 CSmspWriteQueue* self = new (ELeave) CSmspWriteQueue(aSmsComm, aPriority); |
566 CSmspWriteQueue* self = new (ELeave) CSmspWriteQueue(aSmsComm, aPriority); |
561 CleanupStack::PushL(self); |
567 CleanupStack::PushL(self); |
562 self->ConstructL(aSmsSettings, aGsmPhone, aSegmentationStore); |
568 self->ConstructL(aSmsSettings, aGsmPhone, aSegmentationStore); |
563 CleanupStack::Pop(self); |
569 CleanupStack::Pop(self); |
565 } // CSmspWriteQueue::NewL |
571 } // CSmspWriteQueue::NewL |
566 |
572 |
567 |
573 |
568 void CSmspWriteQueue::Start() |
574 void CSmspWriteQueue::Start() |
569 { |
575 { |
570 LOGSMSPROT3("*** CSmspWriteQueue::Start [IsActive=%d IsEmpty=%d]", IsActive(), iMessageQueue.IsEmpty()); |
576 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPWRITEQUEUE_START_1, "*** CSmspWriteQueue::Start [IsActive=%d IsEmpty=%d]", IsActive(), iMessageQueue.IsEmpty()); |
571 |
577 |
572 if (!IsActive() && !iMessageQueue.IsEmpty()) |
578 if (!IsActive() && !iMessageQueue.IsEmpty()) |
573 { |
579 { |
574 CQueuedSmsMessage& queuedMessage = *iMessageQueue.First(); |
580 CQueuedSmsMessage& queuedMessage = *iMessageQueue.First(); |
575 iSmsMessageWrite->Start(queuedMessage.iSmsMessage, iStatus); |
581 iSmsMessageWrite->Start(queuedMessage.iSmsMessage, iStatus); |
591 } // CSmspWriteQueue::~CSmspWriteQueue |
597 } // CSmspWriteQueue::~CSmspWriteQueue |
592 |
598 |
593 |
599 |
594 void CSmspWriteQueue::ConstructL(const TSmsSettings& aSmsSettings, RMobilePhone& aGsmPhone, CSmsSegmentationStore& aSegmentationStore) |
600 void CSmspWriteQueue::ConstructL(const TSmsSettings& aSmsSettings, RMobilePhone& aGsmPhone, CSmsSegmentationStore& aSegmentationStore) |
595 { |
601 { |
596 LOGSMSPROT1("CSmspWriteQueue::ConstructL()"); |
602 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPWRITEQUEUE_CONSTRUCTL_1, "CSmspWriteQueue::ConstructL()"); |
597 |
603 |
598 iSmsMessageWrite = CSmsMessageWrite::NewL(iSmsComm, aSmsSettings, aGsmPhone, aSegmentationStore); |
604 iSmsMessageWrite = CSmsMessageWrite::NewL(iSmsComm, aSmsSettings, aGsmPhone, aSegmentationStore); |
599 } // CSmspWriteQueue::ConstructL |
605 } // CSmspWriteQueue::ConstructL |
600 |
606 |
601 |
607 |
602 void CSmspWriteQueue::CancelRequestIfObserved(MSmsMessageObserver& aObserver) |
608 void CSmspWriteQueue::CancelRequestIfObserved(MSmsMessageObserver& aObserver) |
603 { |
609 { |
604 LOGSMSPROT1("CSmspWriteQueue::CancelRequestIfObserved()"); |
610 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPWRITEQUEUE_CANCELREQUESTIFOBSERVED_1, "CSmspWriteQueue::CancelRequestIfObserved()"); |
605 |
611 |
606 if (IsActive() && &iMessageQueue.First()->iObserver == &aObserver) |
612 if (IsActive() && &iMessageQueue.First()->iObserver == &aObserver) |
607 { |
613 { |
608 iSmsMessageWrite->Cancel(); |
614 iSmsMessageWrite->Cancel(); |
609 } |
615 } |
610 } // CSmspWriteQueue::CancelRequestIfObserved |
616 } // CSmspWriteQueue::CancelRequestIfObserved |
611 |
617 |
612 |
618 |
613 void CSmspWriteQueue::CompleteObserver(MSmsMessageObserver& aObserver, TInt aError, const CSmsMessage* aSmsMessage) |
619 void CSmspWriteQueue::CompleteObserver(MSmsMessageObserver& aObserver, TInt aError, const CSmsMessage* aSmsMessage) |
614 { |
620 { |
615 LOGSMSPROT4("*** CSmspWriteQueue::CompleteObserver [aObserver=0x%X aError=%d IsActive=%d]", &aObserver, aError, IsActive()); |
621 OstTraceDefExt3(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPWRITEQUEUE_COMPLETEOBSERVER_1, "*** CSmspWriteQueue::CompleteObserver [aObserver=0x%X aError=%d IsActive=%d]", (TUint)&aObserver, aError, IsActive()); |
616 if (iSmsComm.ObserverIsPresent(aObserver)) |
622 if (iSmsComm.ObserverIsPresent(aObserver)) |
617 { |
623 { |
618 aObserver.MessageWriteCompleted(aError, aSmsMessage); |
624 aObserver.MessageWriteCompleted(aError, aSmsMessage); |
619 } |
625 } |
620 } // CSmspWriteQueue::CompleteObserver |
626 } // CSmspWriteQueue::CompleteObserver |
621 |
627 |
622 |
628 |
623 void CSmspWriteQueue::Complete(TInt) |
629 void CSmspWriteQueue::Complete(TInt) |
624 { |
630 { |
625 LOGSMSPROT1("CSmspWriteQueue::Complete()"); |
631 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CSMSPWRITEQUEUE_COMPLETE_1, "CSmspWriteQueue::Complete()"); |
626 |
632 |
627 //Do Nothing :o) |
633 //Do Nothing :o) |
628 } // CSmspWriteQueue::Complete |
634 } // CSmspWriteQueue::Complete |
629 |
635 |