metadataengine/server/src/mdssqlobjectmanipulate.cpp
branchRCL_3
changeset 14 646a02f170b9
parent 3 b73a2e62868f
child 15 3cebc1a84278
equal deleted inserted replaced
8:6752808b2036 14:646a02f170b9
   189     {
   189     {
   190     }
   190     }
   191 
   191 
   192 void CMdSSqlObjectManipulate::ConstructL( )
   192 void CMdSSqlObjectManipulate::ConstructL( )
   193     {
   193     {
   194     
       
   195 	iGenerator = CMdSIdentifierGenerator::NewL();
   194 	iGenerator = CMdSIdentifierGenerator::NewL();
   196 
   195 
   197 	iNamespaceDef = NULL;
   196 	iNamespaceDef = NULL;
   198 	
   197 	
   199 	TLockBuffer lockBuffer;
       
   200 	lockBuffer.iLock = EFalse;
       
   201 	for (TInt i = 0; i < KMaxBuffers; ++i)
   198 	for (TInt i = 0; i < KMaxBuffers; ++i)
   202 		{
   199 		{
   203 	    CMdsClauseBuffer* buffer = CMdsClauseBuffer::NewLC( 1024 );
   200 	    TLockBuffer lockBuffer;
   204 		lockBuffer.iBuffer = buffer;
   201 	    lockBuffer.iLock = EFalse;
       
   202 	    lockBuffer.iBuffer = CMdsClauseBuffer::NewLC( 1024 );
   205 		iBuffers.AppendL( lockBuffer );
   203 		iBuffers.AppendL( lockBuffer );
   206 		CleanupStack::Pop(); // buffer
   204 		CleanupStack::Pop(); // buffer
   207 		}
   205 		}
   208 
       
   209     }
   206     }
   210 
   207 
   211 TBool CMdSSqlObjectManipulate::GarbageCollectionL()
   208 TBool CMdSSqlObjectManipulate::GarbageCollectionL()
   212 	{
   209 	{
   213 	return DoGarbageCollectionL();
   210 	return DoGarbageCollectionL();
  2055 			prevId = objectId;
  2052 			prevId = objectId;
  2056 			}
  2053 			}
  2057 		if (!dataRow.Column(1).IsNull())
  2054 		if (!dataRow.Column(1).IsNull())
  2058 			{
  2055 			{
  2059 			dataRow.Column(1).Get( relationId );
  2056 			dataRow.Column(1).Get( relationId );
  2060 			aRelationIds.InsertInOrder( relationId, TLinearOrder<TItemId>( CompareTItemIds ) );
  2057 			const TInt error( aRelationIds.InsertInOrder( relationId, TLinearOrder<TItemId>( CompareTItemIds ) ) );
       
  2058 			if( error == KErrNoMemory )
       
  2059 			    {
       
  2060 			    User::Leave( error );
       
  2061 			    }
  2061 			}
  2062 			}
  2062 		else
  2063 		else
  2063 			{
  2064 			{
  2064 			dataRow.Column(1).Set( relationId );
  2065 			dataRow.Column(1).Set( relationId );
  2065 			}
  2066 			}
  3264 	// or create new one
  3265 	// or create new one
  3265 	for (TInt i = 0; i < iBuffers.Count(); ++i)
  3266 	for (TInt i = 0; i < iBuffers.Count(); ++i)
  3266 		{
  3267 		{
  3267 		if (!iBuffers[i].iLock)
  3268 		if (!iBuffers[i].iLock)
  3268 			{
  3269 			{
  3269 			iBuffers[i].iLock = ETrue;
  3270 		    iBuffers[i].iLock = ETrue;
  3270 			iBuffer = iBuffers[i].iBuffer;
  3271             CMdsClauseBuffer* oldBuffer( iBuffer );
       
  3272             iBuffer = iBuffers[i].iBuffer;
       
  3273             TRAPD( error, iBuffer->ReserveSpaceL(aSize) );
       
  3274             if( error != KErrNone )
       
  3275                 {
       
  3276                 iBuffer = oldBuffer;
       
  3277                 iBuffers[i].iLock = EFalse;
       
  3278                 continue;
       
  3279                 }		
       
  3280             TRAP_IGNORE( iBuffer->BufferL().Zero() );			
  3271 			iNr = i;
  3281 			iNr = i;
  3272 			TRAP_IGNORE( iBuffer->ReserveSpaceL(aSize) );
       
  3273 			TRAP_IGNORE( iBuffer->BufferL().Zero() );
       
  3274 			return;
  3282 			return;
  3275 			}
  3283 			}
  3276 		}
  3284 		}
  3277 	}
  3285 	}
  3278 
  3286