1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2007-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". |
30 @pre A connected file server session must be passed as parameter. |
36 @pre A connected file server session must be passed as parameter. |
31 @post CFacadeSmsReassemblyStore object is now fully initialised |
37 @post CFacadeSmsReassemblyStore object is now fully initialised |
32 */ |
38 */ |
33 CFacadeSmsReassemblyStore* CFacadeSmsReassemblyStore::NewL(RFs& aFs, MSmsComm& aSmsComm) |
39 CFacadeSmsReassemblyStore* CFacadeSmsReassemblyStore::NewL(RFs& aFs, MSmsComm& aSmsComm) |
34 { |
40 { |
35 LOGSMSPROT1("CFacadeSmsReassemblyStore::NewL()"); |
41 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_NEWL_1, "CFacadeSmsReassemblyStore::NewL()"); |
36 |
42 |
37 CFacadeSmsReassemblyStore* self = new (ELeave) CFacadeSmsReassemblyStore(aFs, aSmsComm); |
43 CFacadeSmsReassemblyStore* self = new (ELeave) CFacadeSmsReassemblyStore(aFs, aSmsComm); |
38 CleanupStack::PushL(self); |
44 CleanupStack::PushL(self); |
39 self->ConstructL(); |
45 self->ConstructL(); |
40 CleanupStack::Pop(self); |
46 CleanupStack::Pop(self); |
54 /** |
60 /** |
55 * Destructor. It destroys all the member variables. |
61 * Destructor. It destroys all the member variables. |
56 */ |
62 */ |
57 CFacadeSmsReassemblyStore::~CFacadeSmsReassemblyStore() |
63 CFacadeSmsReassemblyStore::~CFacadeSmsReassemblyStore() |
58 { |
64 { |
59 LOGSMSPROT1("~CFacadeSmsReassemblyStore()"); |
65 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_DTOR_1, "~CFacadeSmsReassemblyStore()"); |
60 iReassemblyStore->Close(); |
66 iReassemblyStore->Close(); |
61 delete iReassemblyStore; |
67 delete iReassemblyStore; |
62 |
68 |
63 if (iClass0ReassemblyStore) |
69 if (iClass0ReassemblyStore) |
64 { |
70 { |
80 @pre A connected file server session must be passed as parameter. |
86 @pre A connected file server session must be passed as parameter. |
81 @post CFacadeSmsReassemblyStore object is now fully constructed. |
87 @post CFacadeSmsReassemblyStore object is now fully constructed. |
82 */ |
88 */ |
83 void CFacadeSmsReassemblyStore::ConstructL() |
89 void CFacadeSmsReassemblyStore::ConstructL() |
84 { |
90 { |
85 LOGSMSPROT1("CFacadeSmsReassemblyStore::ConstructL()"); |
91 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_CONSTRUCTL_1, "CFacadeSmsReassemblyStore::ConstructL()"); |
86 |
92 |
87 iReassemblyStore = CSmsReassemblyStore::NewL(iFs); |
93 iReassemblyStore = CSmsReassemblyStore::NewL(iFs); |
88 /* |
94 /* |
89 Read [ReassemblyStore] section from smswap.sms.esk file. If section is absent then there is |
95 Read [ReassemblyStore] section from smswap.sms.esk file. If section is absent then there is |
90 no need to create class 0 re-assembly store. This sms stack is configured to work |
96 no need to create class 0 re-assembly store. This sms stack is configured to work |
131 |
137 |
132 @internalComponent |
138 @internalComponent |
133 */ |
139 */ |
134 void CFacadeSmsReassemblyStore::OpenStoreL() |
140 void CFacadeSmsReassemblyStore::OpenStoreL() |
135 { |
141 { |
136 LOGSMSPROT1("CFacadeSmsReassemblyStore::OpenStoreL()"); |
142 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_OPENSTOREL_1, "CFacadeSmsReassemblyStore::OpenStoreL()"); |
137 iReassemblyStore->OpenStoreL(); |
143 iReassemblyStore->OpenStoreL(); |
138 if (iClass0ReassemblyStore) |
144 if (iClass0ReassemblyStore) |
139 { |
145 { |
140 iClass0ReassemblyStore->OpenStoreL(); |
146 iClass0ReassemblyStore->OpenStoreL(); |
141 } |
147 } |
146 |
152 |
147 @internalComponent |
153 @internalComponent |
148 */ |
154 */ |
149 void CFacadeSmsReassemblyStore::Close() |
155 void CFacadeSmsReassemblyStore::Close() |
150 { |
156 { |
151 LOGSMSPROT1("CFacadeSmsReassemblyStore::Close()"); |
157 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_CLOSE_1, "CFacadeSmsReassemblyStore::Close()"); |
152 // Close general Re-assembly store. |
158 // Close general Re-assembly store. |
153 iReassemblyStore->Close(); |
159 iReassemblyStore->Close(); |
154 // Close Class0 re-assembly store. |
160 // Close Class0 re-assembly store. |
155 if (iClass0ReassemblyStore) |
161 if (iClass0ReassemblyStore) |
156 { |
162 { |
180 |
186 |
181 @internalComponent |
187 @internalComponent |
182 */ |
188 */ |
183 void CFacadeSmsReassemblyStore::InitL() |
189 void CFacadeSmsReassemblyStore::InitL() |
184 { |
190 { |
185 LOGSMSPROT1("CFacadeSmsReassemblyStore::InitL()"); |
191 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_INITL_1, "CFacadeSmsReassemblyStore::InitL()"); |
186 // Initialize Non-class 0 Re-assembly store. |
192 // Initialize Non-class 0 Re-assembly store. |
187 InitializeNonClass0StoreL(); |
193 InitializeNonClass0StoreL(); |
188 // Initialize Class0 re-assembly store. |
194 // Initialize Class0 re-assembly store. |
189 if (iClass0ReassemblyStore) |
195 if (iClass0ReassemblyStore) |
190 { |
196 { |
200 |
206 |
201 @internalComponent |
207 @internalComponent |
202 */ |
208 */ |
203 void CFacadeSmsReassemblyStore::PurgeL(const TTimeIntervalMinutes& aTimeIntervalMinutes,TBool aPurgeIncompleteOnly) |
209 void CFacadeSmsReassemblyStore::PurgeL(const TTimeIntervalMinutes& aTimeIntervalMinutes,TBool aPurgeIncompleteOnly) |
204 { |
210 { |
205 LOGSMSPROT1("CFacadeSmsReassemblyStore::PurgeL()"); |
211 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_PURGEL_1, "CFacadeSmsReassemblyStore::PurgeL()"); |
206 iReassemblyStore->PurgeL(aTimeIntervalMinutes, aPurgeIncompleteOnly); |
212 iReassemblyStore->PurgeL(aTimeIntervalMinutes, aPurgeIncompleteOnly); |
207 if (iClass0ReassemblyStore) |
213 if (iClass0ReassemblyStore) |
208 { |
214 { |
209 iClass0ReassemblyStore->PurgeL(aTimeIntervalMinutes, aPurgeIncompleteOnly); |
215 iClass0ReassemblyStore->PurgeL(aTimeIntervalMinutes, aPurgeIncompleteOnly); |
210 } |
216 } |
217 |
223 |
218 @internalComponent |
224 @internalComponent |
219 */ |
225 */ |
220 TBool CFacadeSmsReassemblyStore::IsFull() |
226 TBool CFacadeSmsReassemblyStore::IsFull() |
221 { |
227 { |
222 LOGSMSPROT1("CFacadeSmsReassemblyStore::IsFull()"); |
228 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_ISFULL_1, "CFacadeSmsReassemblyStore::IsFull()"); |
223 |
229 |
224 //local variable for complete entries |
230 //local variable for complete entries |
225 TInt count( 0 ); |
231 TInt count( 0 ); |
226 count = NumberOfCompleteNonClass0Messages(); |
232 count = NumberOfCompleteNonClass0Messages(); |
227 if (iClass0ReassemblyStore) |
233 if (iClass0ReassemblyStore) |
244 |
250 |
245 @internalComponent |
251 @internalComponent |
246 */ |
252 */ |
247 void CFacadeSmsReassemblyStore::DeleteEnumeratedSIMEntries() |
253 void CFacadeSmsReassemblyStore::DeleteEnumeratedSIMEntries() |
248 { |
254 { |
249 LOGSMSPROT1("CFacadeSmsReassemblyStore::DeleteEnumeratedSIMEntries()"); |
255 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_DELETEENUMERATEDSIMENTRIES_1, "CFacadeSmsReassemblyStore::DeleteEnumeratedSIMEntries()"); |
250 DeleteNonClass0EnumeratedSIMEntries(); |
256 DeleteNonClass0EnumeratedSIMEntries(); |
251 if (iClass0ReassemblyStore) |
257 if (iClass0ReassemblyStore) |
252 { |
258 { |
253 iClass0ReassemblyStore->DeleteEnumeratedSIMEntries(); |
259 iClass0ReassemblyStore->DeleteEnumeratedSIMEntries(); |
254 } |
260 } |
265 |
271 |
266 @internalComponent |
272 @internalComponent |
267 */ |
273 */ |
268 TInt CFacadeSmsReassemblyStore::ExternalizeEnumeratedMessagesL(CSmsProvider& aProvider,TInt& aCount) |
274 TInt CFacadeSmsReassemblyStore::ExternalizeEnumeratedMessagesL(CSmsProvider& aProvider,TInt& aCount) |
269 { |
275 { |
270 LOGSMSPROT1("CFacadeSmsReassemblyStore::ExternalizeEnumeratedMessagesL()"); |
276 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_EXTERNALIZEENUMERATEDMESSAGESL_1, "CFacadeSmsReassemblyStore::ExternalizeEnumeratedMessagesL()"); |
271 TInt numNewSegments(0); |
277 TInt numNewSegments(0); |
272 numNewSegments = ExternalizeEnumeratedNonClass0SmsMessagesL(aProvider, aCount); |
278 numNewSegments = ExternalizeEnumeratedNonClass0SmsMessagesL(aProvider, aCount); |
273 if (iClass0ReassemblyStore) |
279 if (iClass0ReassemblyStore) |
274 { |
280 { |
275 numNewSegments += ExternalizeEnumeratedClass0SmsMessagesL(aProvider, aCount); |
281 numNewSegments += ExternalizeEnumeratedClass0SmsMessagesL(aProvider, aCount); |
287 |
293 |
288 @internalComponent |
294 @internalComponent |
289 */ |
295 */ |
290 void CFacadeSmsReassemblyStore::ProcessCompleteSmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage* aCurrentSmsMessage) |
296 void CFacadeSmsReassemblyStore::ProcessCompleteSmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage* aCurrentSmsMessage) |
291 { |
297 { |
292 LOGSMSPROT1("CFacadeSmsReassemblyStore::ProcessCompleteSmsMessagesL"); |
298 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_PROCESSCOMPLETESMSMESSAGESL_1, "CFacadeSmsReassemblyStore::ProcessCompleteSmsMessagesL"); |
293 |
299 |
294 ProcessCompleteNonClass0SmsMessagesL(aSmsComm, aCurrentSmsMessage); |
300 ProcessCompleteNonClass0SmsMessagesL(aSmsComm, aCurrentSmsMessage); |
295 if (iClass0ReassemblyStore) |
301 if (iClass0ReassemblyStore) |
296 { |
302 { |
297 ProcessCompleteClass0SmsMessagesL(aSmsComm, aCurrentSmsMessage); |
303 ProcessCompleteClass0SmsMessagesL(aSmsComm, aCurrentSmsMessage); |
338 might receive all the constituent PDU of that message but aSmsMesssage will contain partial complete message. |
344 might receive all the constituent PDU of that message but aSmsMesssage will contain partial complete message. |
339 To find out complete/incompletness of the message, CSmsMessage::IsComplete() message function has to be called. |
345 To find out complete/incompletness of the message, CSmsMessage::IsComplete() message function has to be called. |
340 */ |
346 */ |
341 void CFacadeSmsReassemblyStore::AddSegmentToReassemblyStoreL(CSmsMessage& aSmsMessage,const TGsmSms& aGsmSms, TInt& aIndex, TBool& aIsComplete, TBool aIsEnumeration, TInt& aCount, TInt& aTotal) |
347 void CFacadeSmsReassemblyStore::AddSegmentToReassemblyStoreL(CSmsMessage& aSmsMessage,const TGsmSms& aGsmSms, TInt& aIndex, TBool& aIsComplete, TBool aIsEnumeration, TInt& aCount, TInt& aTotal) |
342 { |
348 { |
343 LOGSMSPROT2("CFacadeSmsReassemblyStore::AddSegmentToReassemblyStoreL(): isComplete Message=%d", |
349 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_ADDSEGMENTTOREASSEMBLYSTOREL_1, "CFacadeSmsReassemblyStore::AddSegmentToReassemblyStoreL(): isComplete Message=%d",aSmsMessage.IsComplete()); |
344 aSmsMessage.IsComplete()); |
|
345 |
350 |
346 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
351 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
347 |
352 |
348 if (toBeStoredInClass0ReassemblyStore) |
353 if (toBeStoredInClass0ReassemblyStore) |
349 { |
354 { |
374 |
379 |
375 @internalComponent |
380 @internalComponent |
376 */ |
381 */ |
377 void CFacadeSmsReassemblyStore::ForwardCompleteClass0SmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage& aSmsMessage,const TSmsAddr* aOriginalSmsAddr,const CSmsMessage* aOriginalSmsMessage,TDes& aDes) |
382 void CFacadeSmsReassemblyStore::ForwardCompleteClass0SmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage& aSmsMessage,const TSmsAddr* aOriginalSmsAddr,const CSmsMessage* aOriginalSmsMessage,TDes& aDes) |
378 { |
383 { |
379 LOGSMSPROT1("CFacadeSmsReassemblyStore::ForwardCompleteClass0SmsMessagesL"); |
384 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_FORWARDCOMPLETECLASS0SMSMESSAGESL_1, "CFacadeSmsReassemblyStore::ForwardCompleteClass0SmsMessagesL"); |
380 if (iClass0ReassemblyStore) |
385 if (iClass0ReassemblyStore) |
381 { |
386 { |
382 iClass0ReassemblyStore->ForwardCompleteClass0SmsMessagesL(aSmsComm, aSmsMessage, aOriginalSmsAddr, aOriginalSmsMessage, aDes); |
387 iClass0ReassemblyStore->ForwardCompleteClass0SmsMessagesL(aSmsComm, aSmsMessage, aOriginalSmsAddr, aOriginalSmsMessage, aDes); |
383 } |
388 } |
384 } |
389 } |
393 |
398 |
394 @internalComponent |
399 @internalComponent |
395 */ |
400 */ |
396 void CFacadeSmsReassemblyStore::ProcessMessageIfExceedLimitationL(MSmsComm& aSmsComm) |
401 void CFacadeSmsReassemblyStore::ProcessMessageIfExceedLimitationL(MSmsComm& aSmsComm) |
397 { |
402 { |
398 LOGSMSPROT1("CFacadeSmsReassemblyStore::ProcessMessageIfExceedLimitationL"); |
403 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_PROCESSMESSAGEIFEXCEEDLIMITATIONL_1, "CFacadeSmsReassemblyStore::ProcessMessageIfExceedLimitationL"); |
399 if (iClass0ReassemblyStore) |
404 if (iClass0ReassemblyStore) |
400 { |
405 { |
401 iClass0ReassemblyStore->ProcessMessageIfExceedLimitationL(aSmsComm); |
406 iClass0ReassemblyStore->ProcessMessageIfExceedLimitationL(aSmsComm); |
402 } |
407 } |
403 } |
408 } |
413 |
418 |
414 @internalComponent |
419 @internalComponent |
415 */ |
420 */ |
416 void CFacadeSmsReassemblyStore::SetIncompleteMessageForwardedToClientL(const CSmsMessage& aSmsMessage) |
421 void CFacadeSmsReassemblyStore::SetIncompleteMessageForwardedToClientL(const CSmsMessage& aSmsMessage) |
417 { |
422 { |
418 LOGSMSPROT1("CFacadeSmsReassemblyStore::SetIncompleteMessageForwardedToClientL()"); |
423 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_SETINCOMPLETEMESSAGEFORWARDEDTOCLIENTL_1, "CFacadeSmsReassemblyStore::SetIncompleteMessageForwardedToClientL()"); |
419 if (iClass0ReassemblyStore) |
424 if (iClass0ReassemblyStore) |
420 { |
425 { |
421 iClass0ReassemblyStore->SetIncompleteMessageForwardedToClientL(aSmsMessage); |
426 iClass0ReassemblyStore->SetIncompleteMessageForwardedToClientL(aSmsMessage); |
422 } |
427 } |
423 } |
428 } |
427 If disk space is full, then class 0 re-assembly store stores the incoming message in |
432 If disk space is full, then class 0 re-assembly store stores the incoming message in |
428 pre-allocated file. Otherwise it stores the message in permanent store file. |
433 pre-allocated file. Otherwise it stores the message in permanent store file. |
429 */ |
434 */ |
430 void CFacadeSmsReassemblyStore::SetDiskSpaceState(TSmsDiskSpaceMonitorStatus aDiskSpaceStatus) |
435 void CFacadeSmsReassemblyStore::SetDiskSpaceState(TSmsDiskSpaceMonitorStatus aDiskSpaceStatus) |
431 { |
436 { |
432 LOGSMSPROT1("CFacadeSmsReassemblyStore::SetDiskSpaceState()"); |
437 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_SETDISKSPACESTATE_1, "CFacadeSmsReassemblyStore::SetDiskSpaceState()"); |
433 if (iClass0ReassemblyStore) |
438 if (iClass0ReassemblyStore) |
434 { |
439 { |
435 iClass0ReassemblyStore->SetDiskSpaceState(aDiskSpaceStatus); |
440 iClass0ReassemblyStore->SetDiskSpaceState(aDiskSpaceStatus); |
436 } |
441 } |
437 } |
442 } |
445 |
450 |
446 @internalComponent |
451 @internalComponent |
447 */ |
452 */ |
448 void CFacadeSmsReassemblyStore::DeleteMessageL(const CSmsMessage& aSmsMessage, TBool aPassed) |
453 void CFacadeSmsReassemblyStore::DeleteMessageL(const CSmsMessage& aSmsMessage, TBool aPassed) |
449 { |
454 { |
450 LOGSMSPROT1("CFacadeSmsReassemblyStore::DeleteEntryL()"); |
455 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_DELETEMESSAGEL_1, "CFacadeSmsReassemblyStore::DeleteEntryL()"); |
451 |
456 |
452 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
457 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
453 |
458 |
454 if (toBeStoredInClass0ReassemblyStore) |
459 if (toBeStoredInClass0ReassemblyStore) |
455 { |
460 { |
469 |
474 |
470 @internalComponent |
475 @internalComponent |
471 */ |
476 */ |
472 void CFacadeSmsReassemblyStore::UpdateLogServerIdL(const CSmsMessage& aSmsMessage, TInt aIndex) |
477 void CFacadeSmsReassemblyStore::UpdateLogServerIdL(const CSmsMessage& aSmsMessage, TInt aIndex) |
473 { |
478 { |
474 LOGSMSPROT1("CFacadeSmsReassemblyStore::UpdateLogServerIdL()"); |
479 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_UPDATELOGSERVERIDL_1, "CFacadeSmsReassemblyStore::UpdateLogServerIdL()"); |
475 |
480 |
476 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
481 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
477 |
482 |
478 if (toBeStoredInClass0ReassemblyStore) |
483 if (toBeStoredInClass0ReassemblyStore) |
479 { |
484 { |
492 |
497 |
493 @internalComponent |
498 @internalComponent |
494 */ |
499 */ |
495 void CFacadeSmsReassemblyStore::SetMessagePassedToClientL(const CSmsMessage& aSmsMessage, TBool aPassed) |
500 void CFacadeSmsReassemblyStore::SetMessagePassedToClientL(const CSmsMessage& aSmsMessage, TBool aPassed) |
496 { |
501 { |
497 LOGSMSPROT1("CFacadeSmsReassemblyStore::SetMessagePassedToClientL()"); |
502 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_SETMESSAGEPASSEDTOCLIENTL_1, "CFacadeSmsReassemblyStore::SetMessagePassedToClientL()"); |
498 |
503 |
499 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
504 TBool toBeStoredInClass0ReassemblyStore = IsForClass0ReassemblyStore(aSmsMessage); |
500 |
505 |
501 if (toBeStoredInClass0ReassemblyStore) |
506 if (toBeStoredInClass0ReassemblyStore) |
502 { |
507 { |
567 |
572 |
568 @internalComponent |
573 @internalComponent |
569 */ |
574 */ |
570 void CFacadeSmsReassemblyStore::InitializeNonClass0StoreL() |
575 void CFacadeSmsReassemblyStore::InitializeNonClass0StoreL() |
571 { |
576 { |
572 LOGSMSPROT1("CFacadeSmsReassemblyStore::InitializeNonClass0StoreL()"); |
577 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_INITIALIZENONCLASS0STOREL_1, "CFacadeSmsReassemblyStore::InitializeNonClass0StoreL()"); |
573 // Initialize Re-assembly store. |
578 // Initialize Re-assembly store. |
574 iReassemblyStore->OpenStoreL(); |
579 iReassemblyStore->OpenStoreL(); |
575 iReassemblyStore->BeginTransactionLC(); |
580 iReassemblyStore->BeginTransactionLC(); |
576 TInt count = iReassemblyStore->Entries().Count(); |
581 TInt count = iReassemblyStore->Entries().Count(); |
577 while (count--) |
582 while (count--) |
604 */ |
609 */ |
605 void CFacadeSmsReassemblyStore::DeleteNonClass0EnumeratedSIMEntries() |
610 void CFacadeSmsReassemblyStore::DeleteNonClass0EnumeratedSIMEntries() |
606 { |
611 { |
607 const TInt count = iReassemblyStore->Entries().Count(); |
612 const TInt count = iReassemblyStore->Entries().Count(); |
608 |
613 |
609 LOGSMSPROT2("CFacadeSmsReassemblyStore::DeleteNonClass0EnumeratedSIMEntries(): %d messages in RAS", count); |
614 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_DELETENONCLASS0ENUMERATEDSIMENTRIES_1, "CFacadeSmsReassemblyStore::DeleteNonClass0EnumeratedSIMEntries(): %d messages in RAS", count); |
610 |
615 |
611 TInt index; |
616 TInt index; |
612 |
617 |
613 for (index = count-1; index >= 0; --index) |
618 for (index = count-1; index >= 0; --index) |
614 { |
619 { |
632 |
637 |
633 @internalComponent |
638 @internalComponent |
634 */ |
639 */ |
635 void CFacadeSmsReassemblyStore::DeleteNonClass0MessageL(const CSmsMessage& aSmsMessage, TBool aPassed) |
640 void CFacadeSmsReassemblyStore::DeleteNonClass0MessageL(const CSmsMessage& aSmsMessage, TBool aPassed) |
636 { |
641 { |
637 LOGSMSPROT1("CFacadeSmsReassemblyStore::DeleteNonClass0MessageL()"); |
642 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_DELETENONCLASS0MESSAGEL_1, "CFacadeSmsReassemblyStore::DeleteNonClass0MessageL()"); |
638 TInt index(0); |
643 TInt index(0); |
639 |
644 |
640 if(!iReassemblyStore->InTransaction()) |
645 if(!iReassemblyStore->InTransaction()) |
641 { |
646 { |
642 iReassemblyStore->BeginTransactionLC(); |
647 iReassemblyStore->BeginTransactionLC(); |
659 |
664 |
660 @internalComponent |
665 @internalComponent |
661 */ |
666 */ |
662 void CFacadeSmsReassemblyStore::SetNonClass0MessagePassedToClientL(const CSmsMessage& aSmsMessage, TBool aPassed) |
667 void CFacadeSmsReassemblyStore::SetNonClass0MessagePassedToClientL(const CSmsMessage& aSmsMessage, TBool aPassed) |
663 { |
668 { |
664 LOGSMSPROT1("CFacadeSmsReassemblyStore::SetNonClass0MessagePassedToClientL()"); |
669 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_SETNONCLASS0MESSAGEPASSEDTOCLIENTL_1, "CFacadeSmsReassemblyStore::SetNonClass0MessagePassedToClientL()"); |
665 TInt index(0); |
670 TInt index(0); |
666 |
671 |
667 iReassemblyStore->BeginTransactionLC(); |
672 iReassemblyStore->BeginTransactionLC(); |
668 if (iReassemblyStore->FindMessageL(aSmsMessage , !aPassed, index)) |
673 if (iReassemblyStore->FindMessageL(aSmsMessage , !aPassed, index)) |
669 { |
674 { |
675 /** |
680 /** |
676 It returns the number of complete messages stored in general re-assembly store. |
681 It returns the number of complete messages stored in general re-assembly store. |
677 */ |
682 */ |
678 TInt CFacadeSmsReassemblyStore::NumberOfCompleteNonClass0Messages() |
683 TInt CFacadeSmsReassemblyStore::NumberOfCompleteNonClass0Messages() |
679 { |
684 { |
680 LOGSMSPROT2("CFacadeSmsReassemblyStore::NumberOfCompleteMessages(): Entries().Count()=%d", |
685 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_NUMBEROFCOMPLETENONCLASS0MESSAGES_1, "CFacadeSmsReassemblyStore::NumberOfCompleteMessages(): Entries().Count()=%d",iReassemblyStore->Entries().Count()); |
681 iReassemblyStore->Entries().Count()); |
|
682 |
686 |
683 //local variable for complete entries |
687 //local variable for complete entries |
684 TInt count( 0 ); |
688 TInt count( 0 ); |
685 // checks all entrys in the reassembly store |
689 // checks all entrys in the reassembly store |
686 for ( TInt i = iReassemblyStore->Entries().Count()-1; i >= 0; i-- ) |
690 for ( TInt i = iReassemblyStore->Entries().Count()-1; i >= 0; i-- ) |
704 |
708 |
705 @internalComponent |
709 @internalComponent |
706 */ |
710 */ |
707 void CFacadeSmsReassemblyStore::ProcessCompleteNonClass0SmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage* aCurrentSmsMessage) |
711 void CFacadeSmsReassemblyStore::ProcessCompleteNonClass0SmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage* aCurrentSmsMessage) |
708 { |
712 { |
709 LOGSMSPROT2("CFacadeSmsReassemblyStore::ProcessCompleteNonClass0SmsMessagesL [from %d to 0]", iReassemblyStore->Entries().Count()-1); |
713 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_PROCESSCOMPLETENONCLASS0SMSMESSAGESL_1, "CFacadeSmsReassemblyStore::ProcessCompleteNonClass0SmsMessagesL [from %d to 0]", iReassemblyStore->Entries().Count()-1); |
710 |
714 |
711 iReassemblyStore->BeginTransactionLC(); |
715 iReassemblyStore->BeginTransactionLC(); |
712 TInt count = iReassemblyStore->Entries().Count(); |
716 TInt count = iReassemblyStore->Entries().Count(); |
713 |
717 |
714 CSmsBuffer* buffer = CSmsBuffer::NewL(); |
718 CSmsBuffer* buffer = CSmsBuffer::NewL(); |
750 |
754 |
751 @internalComponent |
755 @internalComponent |
752 */ |
756 */ |
753 void CFacadeSmsReassemblyStore::ProcessCompleteClass0SmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage* aCurrentSmsMessage) |
757 void CFacadeSmsReassemblyStore::ProcessCompleteClass0SmsMessagesL(MSmsComm& aSmsComm, const CSmsMessage* aCurrentSmsMessage) |
754 { |
758 { |
755 LOGSMSPROT2("CFacadeSmsReassemblyStore::ProcessCompleteClass0SmsMessagesL [from %d to 0]", iClass0ReassemblyStore->Entries().Count()-1); |
759 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_PROCESSCOMPLETECLASS0SMSMESSAGESL_1, "CFacadeSmsReassemblyStore::ProcessCompleteClass0SmsMessagesL [from %d to 0]", iClass0ReassemblyStore->Entries().Count()-1); |
756 |
760 |
757 iClass0ReassemblyStore->BeginTransactionLC(); |
761 iClass0ReassemblyStore->BeginTransactionLC(); |
758 TInt count = iClass0ReassemblyStore->Entries().Count(); |
762 TInt count = iClass0ReassemblyStore->Entries().Count(); |
759 |
763 |
760 CSmsBuffer* buffer = CSmsBuffer::NewL(); |
764 CSmsBuffer* buffer = CSmsBuffer::NewL(); |
800 |
804 |
801 @internalComponent |
805 @internalComponent |
802 */ |
806 */ |
803 TInt CFacadeSmsReassemblyStore::ExternalizeEnumeratedNonClass0SmsMessagesL(CSmsProvider& aProvider,TInt& aCount) |
807 TInt CFacadeSmsReassemblyStore::ExternalizeEnumeratedNonClass0SmsMessagesL(CSmsProvider& aProvider,TInt& aCount) |
804 { |
808 { |
805 LOGSMSPROT1("CFacadeSmsReassemblyStore::ExternalizeEnumeratedNonClass0SmsMessagesL()"); |
809 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_EXTERNALIZEENUMERATEDNONCLASS0SMSMESSAGESL_1, "CFacadeSmsReassemblyStore::ExternalizeEnumeratedNonClass0SmsMessagesL()"); |
806 TInt count = iReassemblyStore->Entries().Count(); |
810 TInt count = iReassemblyStore->Entries().Count(); |
807 TInt index,numNewSegments(0); |
811 TInt index,numNewSegments(0); |
808 for(index = count-1; index >=0; --index) |
812 for(index = count-1; index >=0; --index) |
809 { |
813 { |
810 TSmsReassemblyEntry entry= (TSmsReassemblyEntry&) iReassemblyStore->Entries()[index]; |
814 TSmsReassemblyEntry entry= (TSmsReassemblyEntry&) iReassemblyStore->Entries()[index]; |
819 ( (smsMessage->DecodedOnSim()) && (smsMessage->ForwardToClient()) ) ) |
823 ( (smsMessage->DecodedOnSim()) && (smsMessage->ForwardToClient()) ) ) |
820 { |
824 { |
821 numNewSegments+=aProvider.ExternalizeMessageL(*smsMessage,EFalse); |
825 numNewSegments+=aProvider.ExternalizeMessageL(*smsMessage,EFalse); |
822 for(TInt i=0; i< smsMessage->iSlotArray.Count() ;i++) |
826 for(TInt i=0; i< smsMessage->iSlotArray.Count() ;i++) |
823 { |
827 { |
824 LOGSMSPROT2("CFacadeSmsReassemblyStore::ExternalizeEnumeratedNonClass0SmsMessagesL %d", smsMessage->iSlotArray[i].iIndex); |
828 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_EXTERNALIZEENUMERATEDNONCLASS0SMSMESSAGESL_2, "CFacadeSmsReassemblyStore::ExternalizeEnumeratedNonClass0SmsMessagesL %d", smsMessage->iSlotArray[i].iIndex); |
825 } |
829 } |
826 ++aCount; |
830 ++aCount; |
827 iReassemblyStore->BeginTransactionLC(); |
831 iReassemblyStore->BeginTransactionLC(); |
828 iReassemblyStore->SetPassedToClientL(index,ETrue); |
832 iReassemblyStore->SetPassedToClientL(index,ETrue); |
829 iReassemblyStore->CommitTransactionL(); |
833 iReassemblyStore->CommitTransactionL(); |
845 |
849 |
846 @internalComponent |
850 @internalComponent |
847 */ |
851 */ |
848 TInt CFacadeSmsReassemblyStore::ExternalizeEnumeratedClass0SmsMessagesL(CSmsProvider& aProvider,TInt& aCount) |
852 TInt CFacadeSmsReassemblyStore::ExternalizeEnumeratedClass0SmsMessagesL(CSmsProvider& aProvider,TInt& aCount) |
849 { |
853 { |
850 LOGSMSPROT1("CFacadeSmsReassemblyStore::ExternalizeEnumeratedClass0SmsMessagesL()"); |
854 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_EXTERNALIZEENUMERATEDCLASS0SMSMESSAGESL_1, "CFacadeSmsReassemblyStore::ExternalizeEnumeratedClass0SmsMessagesL()"); |
851 TInt count = iClass0ReassemblyStore->Entries().Count(); |
855 TInt count = iClass0ReassemblyStore->Entries().Count(); |
852 TInt index,numNewSegments(0); |
856 TInt index,numNewSegments(0); |
853 for(index = count-1; index >=0; --index) |
857 for(index = count-1; index >=0; --index) |
854 { |
858 { |
855 TReassemblyEntry entry= (TReassemblyEntry&) iClass0ReassemblyStore->Entries()[index]; |
859 TReassemblyEntry entry= (TReassemblyEntry&) iClass0ReassemblyStore->Entries()[index]; |
864 ( (smsMessage->DecodedOnSim()) && (smsMessage->ForwardToClient()) ) ) |
868 ( (smsMessage->DecodedOnSim()) && (smsMessage->ForwardToClient()) ) ) |
865 { |
869 { |
866 numNewSegments+=aProvider.ExternalizeMessageL(*smsMessage,EFalse); |
870 numNewSegments+=aProvider.ExternalizeMessageL(*smsMessage,EFalse); |
867 for(TInt i=0; i< smsMessage->iSlotArray.Count() ;i++) |
871 for(TInt i=0; i< smsMessage->iSlotArray.Count() ;i++) |
868 { |
872 { |
869 LOGSMSPROT2("CFacadeSmsReassemblyStore::ExternalizeEnumeratedClass0SmsMessagesL() %d", smsMessage->iSlotArray[i].iIndex); |
873 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_EXTERNALIZEENUMERATEDCLASS0SMSMESSAGESL_2, "CFacadeSmsReassemblyStore::ExternalizeEnumeratedClass0SmsMessagesL() %d", smsMessage->iSlotArray[i].iIndex); |
870 } |
874 } |
871 ++aCount; |
875 ++aCount; |
872 iClass0ReassemblyStore->BeginTransactionLC(); |
876 iClass0ReassemblyStore->BeginTransactionLC(); |
873 iClass0ReassemblyStore->SetPassedToClientL(entry, ETrue); |
877 iClass0ReassemblyStore->SetPassedToClientL(entry, ETrue); |
874 iClass0ReassemblyStore->CommitTransactionL(); |
878 iClass0ReassemblyStore->CommitTransactionL(); |
911 When function returns, if the value of aIsComplete is True, then aSmsMesssage will contain the |
915 When function returns, if the value of aIsComplete is True, then aSmsMesssage will contain the |
912 complete decoded SMS message. |
916 complete decoded SMS message. |
913 */ |
917 */ |
914 void CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(CSmsMessage& aSmsMessage,const TGsmSms& aGsmSms, TInt& aIndex, TBool& aIsComplete, TBool aIsEnumeration, TInt& aCount, TInt& aTotal) |
918 void CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(CSmsMessage& aSmsMessage,const TGsmSms& aGsmSms, TInt& aIndex, TBool& aIsComplete, TBool aIsEnumeration, TInt& aCount, TInt& aTotal) |
915 { |
919 { |
916 LOGSMSPROT2("CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(): isComplete Message=%d", |
920 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_ADDSEGMENTTONONCLASS0REASSEMBLYSTOREL_1, "CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(): isComplete Message=%d",aSmsMessage.IsComplete()); |
917 aSmsMessage.IsComplete()); |
|
918 |
921 |
919 if (aIsComplete || aSmsMessage.Type() == CSmsPDU::ESmsStatusReport) |
922 if (aIsComplete || aSmsMessage.Type() == CSmsPDU::ESmsStatusReport) |
920 { |
923 { |
921 // |
924 // |
922 // 1) This is the complete message (e.g. a single-segment message). |
925 // 1) This is the complete message (e.g. a single-segment message). |
936 // Search the reassembly store for existing parts of the message. |
939 // Search the reassembly store for existing parts of the message. |
937 // |
940 // |
938 TInt segStoreIndex(KErrNotFound); |
941 TInt segStoreIndex(KErrNotFound); |
939 |
942 |
940 iReassemblyStore->MatchPDUToExistingMessage(aSmsMessage, segStoreIndex); |
943 iReassemblyStore->MatchPDUToExistingMessage(aSmsMessage, segStoreIndex); |
941 LOGSMSPROT2("CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(): " |
944 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_ADDSEGMENTTONONCLASS0REASSEMBLYSTOREL_2, "CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(): ""segStoreIndex=%d", segStoreIndex); |
942 "segStoreIndex=%d", segStoreIndex); |
|
943 |
945 |
944 // |
946 // |
945 // If not yet complete, then we must be part of a multiple PDU message. |
947 // If not yet complete, then we must be part of a multiple PDU message. |
946 // Search the reassembly store for existing parts of the message. This |
948 // Search the reassembly store for existing parts of the message. This |
947 // may set iIsComplete to true if all segments are then found. |
949 // may set iIsComplete to true if all segments are then found. |
956 // |
958 // |
957 aIndex = segStoreIndex; |
959 aIndex = segStoreIndex; |
958 iReassemblyStore->UpdateExistingMessageL(aSmsMessage, aGsmSms, aIndex, |
960 iReassemblyStore->UpdateExistingMessageL(aSmsMessage, aGsmSms, aIndex, |
959 aIsComplete, isDuplicateMsgRef, |
961 aIsComplete, isDuplicateMsgRef, |
960 isDuplicateSlot); |
962 isDuplicateSlot); |
961 LOGSMSPROT5("CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(): " |
963 OstTraceDefExt4(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_ADDSEGMENTTONONCLASS0REASSEMBLYSTOREL_3, "CFacadeSmsReassemblyStore::AddSegmentToNonClass0ReassemblyStoreL(): ""aIndex=%d, isComplete=%d, isDuplicateMsgRef=%d, isDuplicateSlot=%d",aIndex, aIsComplete, isDuplicateMsgRef, isDuplicateSlot); |
962 "aIndex=%d, isComplete=%d, isDuplicateMsgRef=%d, isDuplicateSlot=%d", |
|
963 aIndex, aIsComplete, isDuplicateMsgRef, isDuplicateSlot); |
|
964 |
964 |
965 if (isDuplicateMsgRef) |
965 if (isDuplicateMsgRef) |
966 { |
966 { |
967 // |
967 // |
968 // In most cases discard it, unless we are doing an enumeration??? |
968 // In most cases discard it, unless we are doing an enumeration??? |
1048 iReassemblyStore->BeginTransactionLC(); |
1048 iReassemblyStore->BeginTransactionLC(); |
1049 found = iReassemblyStore->FindMessageL(aSmsMessage, EFalse, foundIndex); |
1049 found = iReassemblyStore->FindMessageL(aSmsMessage, EFalse, foundIndex); |
1050 iReassemblyStore->CommitTransactionL(); |
1050 iReassemblyStore->CommitTransactionL(); |
1051 } |
1051 } |
1052 |
1052 |
1053 LOGSMSPROT3("CFacadeSmsReassemblyStore::UpdateLogServerIdOfNonClass0MessageL(): found=%d, foundIndex=%d", |
1053 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_UPDATELOGSERVERIDOFNONCLASS0MESSAGEL_1, "CFacadeSmsReassemblyStore::UpdateLogServerIdOfNonClass0MessageL(): found=%d, foundIndex=%d",found, foundIndex); |
1054 found, foundIndex); |
|
1055 |
1054 |
1056 // |
1055 // |
1057 // If found and the index is valid, then update the Log Server ID... |
1056 // If found and the index is valid, then update the Log Server ID... |
1058 // |
1057 // |
1059 if (found && aIndex == foundIndex) |
1058 if (found && aIndex == foundIndex) |
1067 * Checks whether a message is a WAP message. |
1066 * Checks whether a message is a WAP message. |
1068 * |
1067 * |
1069 */ |
1068 */ |
1070 TBool CFacadeSmsReassemblyStore::IsWapSMS(const CSmsMessage& aSmsMessage) |
1069 TBool CFacadeSmsReassemblyStore::IsWapSMS(const CSmsMessage& aSmsMessage) |
1071 { |
1070 { |
1072 LOGSMSPROT1("CFacadeSmsReassemblyStore::IsWapSMS()"); |
1071 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CFACADESMSREASSEMBLYSTORE_ISWAPSMS_1, "CFacadeSmsReassemblyStore::IsWapSMS()"); |
1073 |
1072 |
1074 return CSmsProtocol::IsAppPortSMS(aSmsMessage); |
1073 return CSmsProtocol::IsAppPortSMS(aSmsMessage); |
1075 } |
1074 } |