equal
deleted
inserted
replaced
1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 1997-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". |
11 // Contributors: |
11 // Contributors: |
12 // |
12 // |
13 // Description: |
13 // Description: |
14 // |
14 // |
15 |
15 |
|
16 |
|
17 #include "OstTraceDefinitions.h" |
|
18 #ifdef OST_TRACE_COMPILER_IN_USE |
|
19 #include "wappstorTraces.h" |
|
20 #endif |
|
21 |
16 #include "wappstor.h" |
22 #include "wappstor.h" |
17 #include "ws_main.h" |
23 #include "ws_main.h" |
18 #include "smsstackutils.h" |
24 #include "smsstackutils.h" |
19 |
25 |
20 |
26 |
24 const TUid KWapReassemblyStoreUid={KWapReassemblyStoreUidValue}; // Used for second uid of SAR stores |
30 const TUid KWapReassemblyStoreUid={KWapReassemblyStoreUidValue}; // Used for second uid of SAR stores |
25 |
31 |
26 |
32 |
27 CWapReassemblyStore* CWapReassemblyStore::NewL(RFs& aFs) |
33 CWapReassemblyStore* CWapReassemblyStore::NewL(RFs& aFs) |
28 { |
34 { |
29 LOGWAPPROT1("CWapReassemblyStore::NewL()"); |
35 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_NEWL_1, "CWapReassemblyStore::NewL()"); |
30 |
36 |
31 CWapReassemblyStore* reassembly=new (ELeave)CWapReassemblyStore(aFs); |
37 CWapReassemblyStore* reassembly=new (ELeave)CWapReassemblyStore(aFs); |
32 CleanupStack::PushL(reassembly); |
38 CleanupStack::PushL(reassembly); |
33 reassembly->ConstructL(); |
39 reassembly->ConstructL(); |
34 CleanupStack::Pop(reassembly); |
40 CleanupStack::Pop(reassembly); |
42 } |
48 } |
43 |
49 |
44 |
50 |
45 TBool CWapReassemblyStore::AddMessageL( TInt& aIndex, const CWapDatagram& aDatagram) |
51 TBool CWapReassemblyStore::AddMessageL( TInt& aIndex, const CWapDatagram& aDatagram) |
46 { |
52 { |
47 LOGWAPPROT1("CWapReassemblyStore::AddMessageL()"); |
53 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_ADDMESSAGEL_1, "CWapReassemblyStore::AddMessageL()"); |
48 |
54 |
49 CArrayPtrFlat<CWapDatagram::TSegmentData>* segmentArray = new |
55 CArrayPtrFlat<CWapDatagram::TSegmentData>* segmentArray = new |
50 (ELeave) CArrayPtrFlat<CWapDatagram::TSegmentData> (8); |
56 (ELeave) CArrayPtrFlat<CWapDatagram::TSegmentData> (8); |
51 |
57 |
52 CleanupStack::PushL(segmentArray); |
58 CleanupStack::PushL(segmentArray); |
196 } // CWapReassemblyStore::AddMessageL |
202 } // CWapReassemblyStore::AddMessageL |
197 |
203 |
198 void CWapReassemblyStore::GetDatagramL( TInt aIndex, |
204 void CWapReassemblyStore::GetDatagramL( TInt aIndex, |
199 CWapDatagram& aDatagram) |
205 CWapDatagram& aDatagram) |
200 { |
206 { |
201 LOGWAPPROT1("CWapReassemblyStore::GetDatagramL()"); |
207 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_GETDATAGRAML_1, "CWapReassemblyStore::GetDatagramL()"); |
202 |
208 |
203 CArrayPtrFlat<CWapDatagram::TSegmentData>* segmentArray = new |
209 CArrayPtrFlat<CWapDatagram::TSegmentData>* segmentArray = new |
204 (ELeave) CArrayPtrFlat<CWapDatagram::TSegmentData> (8); |
210 (ELeave) CArrayPtrFlat<CWapDatagram::TSegmentData> (8); |
205 |
211 |
206 // here we need to push 'segmentArray' pointer to the cleanup stack, since it's a heap allocation (pointer must be deleted) |
212 // here we need to push 'segmentArray' pointer to the cleanup stack, since it's a heap allocation (pointer must be deleted) |
229 CleanupStack::PopAndDestroy(2, segmentArray); // segmentArray elements (Reset and Destroy), segmentArray |
235 CleanupStack::PopAndDestroy(2, segmentArray); // segmentArray elements (Reset and Destroy), segmentArray |
230 } // CWapReassemblyStore::GetDatagramL |
236 } // CWapReassemblyStore::GetDatagramL |
231 |
237 |
232 TBool CWapReassemblyStore::FindAndDeleteDatagramL( CWapDatagram& aDatagram) |
238 TBool CWapReassemblyStore::FindAndDeleteDatagramL( CWapDatagram& aDatagram) |
233 { |
239 { |
234 LOGWAPPROT1("CWapReassemblyStore::FindAndDeleteDatagramL()"); |
240 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_FINDANDDELETEDATAGRAML_1, "CWapReassemblyStore::FindAndDeleteDatagramL()"); |
235 |
241 |
236 TInt index; |
242 TInt index; |
237 TBool isFound = EFalse; |
243 TBool isFound = EFalse; |
238 TWapReassemblyEntry entry; |
244 TWapReassemblyEntry entry; |
239 TInt toPort = 0; |
245 TInt toPort = 0; |
261 } // CWapReassemblyStore::FindAndDeleteDatagramL |
267 } // CWapReassemblyStore::FindAndDeleteDatagramL |
262 |
268 |
263 |
269 |
264 void CWapReassemblyStore::ConstructL() |
270 void CWapReassemblyStore::ConstructL() |
265 { |
271 { |
266 LOGWAPPROT1("CWapReassemblyStore::ConstructL()"); |
272 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_CONSTRUCTL_1, "CWapReassemblyStore::ConstructL()"); |
267 |
273 |
268 //get full path of reassembly store |
274 //get full path of reassembly store |
269 PrivatePath(iFullPathBuf); |
275 PrivatePath(iFullPathBuf); |
270 //append store name |
276 //append store name |
271 iFullPathBuf.Append(KStoreName); |
277 iFullPathBuf.Append(KStoreName); |
284 void CWapReassemblyStore::InternalizeEntryL( |
290 void CWapReassemblyStore::InternalizeEntryL( |
285 TStreamId aStreamId, |
291 TStreamId aStreamId, |
286 CWapDatagram& aDatagram, |
292 CWapDatagram& aDatagram, |
287 CArrayPtr<CWapDatagram::TSegmentData>& aSegmentArray) |
293 CArrayPtr<CWapDatagram::TSegmentData>& aSegmentArray) |
288 { |
294 { |
289 LOGWAPPROT1("CWapReassemblyStore::InternalizeEntryL Start"); |
295 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_INTERNALIZEENTRYL_1, "CWapReassemblyStore::InternalizeEntryL Start"); |
290 |
296 |
291 BeginTransactionLC(); |
297 BeginTransactionLC(); |
292 RStoreReadStream ReadStream; |
298 RStoreReadStream ReadStream; |
293 TInt32 Count; |
299 TInt32 Count; |
294 |
300 |
316 } |
322 } |
317 } |
323 } |
318 // Closes the ReadStream |
324 // Closes the ReadStream |
319 CleanupStack::PopAndDestroy(); |
325 CleanupStack::PopAndDestroy(); |
320 CommitTransactionL(); |
326 CommitTransactionL(); |
321 LOGWAPPROT1("CWapReassemblyStore::InternalizeEntryL End"); |
327 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_INTERNALIZEENTRYL_2, "CWapReassemblyStore::InternalizeEntryL End"); |
322 } // CWapReassemblyStore::InternalizeEntryL |
328 } // CWapReassemblyStore::InternalizeEntryL |
323 |
329 |
324 |
330 |
325 /** |
331 /** |
326 * externalizes all the entries from the internal memory to the permanent file store |
332 * externalizes all the entries from the internal memory to the permanent file store |
333 void CWapReassemblyStore::ExternalizeEntryL( |
339 void CWapReassemblyStore::ExternalizeEntryL( |
334 TStreamId& aStreamId, |
340 TStreamId& aStreamId, |
335 const CWapDatagram& aDatagram, |
341 const CWapDatagram& aDatagram, |
336 const CArrayPtr<CWapDatagram::TSegmentData>& aSegmentArray) |
342 const CArrayPtr<CWapDatagram::TSegmentData>& aSegmentArray) |
337 { |
343 { |
338 LOGWAPPROT1("CWapReassemblyStore::ExternalizeEntryL Start"); |
344 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_EXTERNALIZEENTRYL_1, "CWapReassemblyStore::ExternalizeEntryL Start"); |
339 |
345 |
340 TInt32 Count = aSegmentArray.Count(); |
346 TInt32 Count = aSegmentArray.Count(); |
341 RStoreWriteStream WriteStream; |
347 RStoreWriteStream WriteStream; |
342 |
348 |
343 if (aStreamId==KNullStreamId) |
349 if (aStreamId==KNullStreamId) |
368 |
374 |
369 void CWapReassemblyStore::PopulateEntry(TWapReassemblyEntry& aEntry, |
375 void CWapReassemblyStore::PopulateEntry(TWapReassemblyEntry& aEntry, |
370 const CWapDatagram& aDatagram, |
376 const CWapDatagram& aDatagram, |
371 TInt aNumDatagrams) |
377 TInt aNumDatagrams) |
372 { |
378 { |
373 LOGWAPPROT1("CWapReassemblyStore::PopulateEntry()"); |
379 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_POPULATEENTRY_1, "CWapReassemblyStore::PopulateEntry()"); |
374 |
380 |
375 TInt ToPort = 0; |
381 TInt ToPort = 0; |
376 TInt FromPort = 0; |
382 TInt FromPort = 0; |
377 |
383 |
378 aDatagram.Ports(FromPort,ToPort); |
384 aDatagram.Ports(FromPort,ToPort); |
400 |
406 |
401 |
407 |
402 void CWapReassemblyStore::CreateEntryL(const CWapDatagram& aDatagram, |
408 void CWapReassemblyStore::CreateEntryL(const CWapDatagram& aDatagram, |
403 const CArrayPtr<CWapDatagram::TSegmentData>& aSegmentArray) |
409 const CArrayPtr<CWapDatagram::TSegmentData>& aSegmentArray) |
404 { |
410 { |
405 LOGWAPPROT1("CWapReassemblyStore::CreateEntryL"); |
411 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_CREATEENTRYL_1, "CWapReassemblyStore::CreateEntryL"); |
406 |
412 |
407 TWapReassemblyEntry Entry; |
413 TWapReassemblyEntry Entry; |
408 TStreamId WriteStream = KNullStreamId; |
414 TStreamId WriteStream = KNullStreamId; |
409 BeginTransactionLC(); |
415 BeginTransactionLC(); |
410 ExternalizeEntryL(WriteStream,aDatagram,aSegmentArray); |
416 ExternalizeEntryL(WriteStream,aDatagram,aSegmentArray); |
425 * Open the wap reassembly store. |
431 * Open the wap reassembly store. |
426 * Use RFs::PrivatePath to generate private path. |
432 * Use RFs::PrivatePath to generate private path. |
427 */ |
433 */ |
428 void CWapReassemblyStore::OpenStoreL() |
434 void CWapReassemblyStore::OpenStoreL() |
429 { |
435 { |
430 LOGWAPPROT1("CWapReassemblyStore::OpenStoreL()"); |
436 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPREASSEMBLYSTORE_OPENSTOREL_1, "CWapReassemblyStore::OpenStoreL()"); |
431 |
437 |
432 OpenL(iFullPathBuf,KWapReassemblyStoreUid); |
438 OpenL(iFullPathBuf,KWapReassemblyStoreUid); |
433 } // CWapReassemblyStore::OpenStoreL |
439 } // CWapReassemblyStore::OpenStoreL |
434 |
440 |
435 // EOF - WAPPSTOR.CPP |
441 // EOF - WAPPSTOR.CPP |