omads/omadsextensions/datamod/src/nsmldatamodbase.cpp
branchRCL_3
changeset 61 57a9de0b82e8
parent 14 b922b9936679
equal deleted inserted replaced
56:3e6957da2ff8 61:57a9de0b82e8
   110 // Strips data that is to be transmitted to the sync partner.
   110 // Strips data that is to be transmitted to the sync partner.
   111 // ------------------------------------------------------------------------------------------------
   111 // ------------------------------------------------------------------------------------------------
   112 EXPORT_C void CNSmlDataModBase::StripTxL( CBufBase& aItem )
   112 EXPORT_C void CNSmlDataModBase::StripTxL( CBufBase& aItem )
   113 	{
   113 	{
   114 	_DBG_FILE("CNSmlDataModBase::StripTxL(): begin");
   114 	_DBG_FILE("CNSmlDataModBase::StripTxL(): begin");
   115 	HBufC8* buf = HBufC8::NewLC(aItem.Size() * 2);
   115 	HBufC8* buf = HBufC8::NewLC(aItem.Size());
   116 	*buf = aItem.Ptr(0);
   116 	*buf = aItem.Ptr(0);
   117 	TPtr8 ptrBuf = buf->Des();
   117 	TPtr8 ptrBuf = buf->Des();
   118 
   118 
   119 	StripL(ptrBuf);
   119 	StripL(ptrBuf);
   120 
   120 
   131 EXPORT_C void CNSmlDataModBase::MergeRxL( CBufBase& aNewItem, CBufBase& aOldItem, TBool aFieldLevel )
   131 EXPORT_C void CNSmlDataModBase::MergeRxL( CBufBase& aNewItem, CBufBase& aOldItem, TBool aFieldLevel )
   132 	{
   132 	{
   133 	_DBG_FILE("CNSmlDataModBase::MergeRxL(): begin");
   133 	_DBG_FILE("CNSmlDataModBase::MergeRxL(): begin");
   134 	if( NeedsMerge() )
   134 	if( NeedsMerge() )
   135 		{
   135 		{
   136 		HBufC8* b1 = HBufC8::NewLC(aNewItem.Size() + aOldItem.Size());
   136 	
       
   137         TInt totalSize = aNewItem.Size();
       
   138         
       
   139         /*
       
   140          
       
   141         Extra size is allocated to buffer as versit parser will increase the stream size by spliting 
       
   142 		
       
   143 		the whole data into multiple lines each containing 64 byte data and it will append 6 more bytes
       
   144 		
       
   145 		(4 spaces,one line return and one carriage return)to each line which will result a total 
       
   146 		
       
   147 		increase around 9.375% (6/64) stream size. so here the size is increased by 12.5% to accomodate 
       
   148 		
       
   149 		these extra bytes. 
       
   150     
       
   151         */
       
   152         
       
   153         totalSize += (totalSize>>3); //increases size of new item by 12.5% 
       
   154 
       
   155         totalSize += aOldItem.Size();
       
   156 
       
   157         HBufC8* b1 = HBufC8::NewLC(totalSize);
       
   158 		
   137 		*b1 = aNewItem.Ptr(0);
   159 		*b1 = aNewItem.Ptr(0);
   138 		TPtr8 ptrB1 = b1->Des();
   160 		TPtr8 ptrB1 = b1->Des();
   139 		TPtr8 p2 = aOldItem.Ptr(0);
   161 		TPtr8 p2 = aOldItem.Ptr(0);
   140 
   162 
   141 		MergeL( ptrB1, p2, aFieldLevel );
   163 		MergeL( ptrB1, p2, aFieldLevel );