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