smsprotocols/smsstack/wapprot/Src/wappstor.cpp
branchRCL_3
changeset 65 630d2f34d719
parent 21 2492a6e4aed7
child 66 07a122eea281
equal deleted inserted replaced
61:17af172ffa5f 65:630d2f34d719
     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