locationcentre/lcserver/src/lcregapporder.cpp
branchRCL_3
changeset 16 4721bd00d3da
parent 14 3a25f69541ff
child 21 e15b7f06eba6
--- a/locationcentre/lcserver/src/lcregapporder.cpp	Wed Apr 14 15:50:30 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Location Centre Server object.
-*
-*/
-
-
-// SYSTEM INCLUDES
-#include<s32mem.h>
-
-// USER INCLUDES
-#include "lcregapporder.h"
-#include "lcprivatecrkeys.h"
-#include "lcregappstore.h"
-
-// CONSTANT DEFINTIONS
-const TInt KLcNoofDigitsInInteger = 4;
-const TInt KLcMaxBufLength = 1024;
-
-// ----- Member funtions for CLcRegAppOrder ---------------------------------
-
-// ---------------------------------------------------------------------------
-// CLcRegAppOrder::CLcRegAppOrder
-// ---------------------------------------------------------------------------
-//
-CLcRegAppOrder::CLcRegAppOrder( CLcRegAppStore& aLcRegAppStore )
-	:iLcRegAppStore( &aLcRegAppStore )
-    {
-    // C++ Default constructor. No allocations or functions which can Leave
-    // should be called from here.Initiallize all the variable here
-    }
-         
-// ---------------------------------------------------------------------------
-// CLcRegAppOrder::~CLcRegAppOrder
-// ---------------------------------------------------------------------------
-//
-CLcRegAppOrder::~CLcRegAppOrder()
-    {
-    // C++ Destructor. Free all resources associated with this class.
-	delete iRepository;
-	iRepository = NULL;	
-	// clear the top key value.
-	iTopArray.ResetAndDestroy();
-	iTopArray.Close();
-	// clear the bottom key value
-	iBottomArray.ResetAndDestroy();
-	iBottomArray.Close();
-	// clear middle uuid array
-	iMiddleArray.ResetAndDestroy();
-	iMiddleArray.Close();
-    }
-        
-// ---------------------------------------------------------------------------
-// CLcRegAppOrder* CLcRegAppOrder::NewL
-// ---------------------------------------------------------------------------
-//
-CLcRegAppOrder* CLcRegAppOrder::NewL( CLcRegAppStore& aLcRegAppStore )
-    {
-    // Symbian Two phased constructor. Leaves the object on the Clean-up
-    // stack.
-    CLcRegAppOrder* self = new ( ELeave )CLcRegAppOrder( aLcRegAppStore );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;         
-    }
-
-// ---------------------------------------------------------------------------
-// void CLcRegAppOrder::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CLcRegAppOrder::ConstructL()
-    {
-	// Create the Central repository object for manipulating Avkon Central
-	// repository for application order key
-	iRepository = CRepository::NewL( KCRUidLocationCentre );
-    HBufC* buffer = HBufC::NewLC( NCentralRepositoryConstants::KMaxUnicodeStringLength );
-    TPtr bufferPtr( buffer->Des() );
-    // get the top order services
-    User::LeaveIfError( iRepository->Get( ELcTop, bufferPtr ) );    
-	ParseCenRepKeyL( iTopArray, bufferPtr );
-	// get the middle order services
-	User::LeaveIfError( iRepository->Get( ELcBottom, bufferPtr ) );
-	ParseCenRepKeyL( iBottomArray, bufferPtr );
-	// get the bottom order services if any
-	TBool isMidleKeySet = EFalse;
-	User::LeaveIfError( iRepository->Get( ELcMiddle, isMidleKeySet ) );
-	
-	if( isMidleKeySet )
-		{
-        // Allocate the id Array buffer    
-        CBufFlat* idArrayBuf = CBufFlat::NewL( KLcMaxBufLength );
-        CleanupStack::PushL( idArrayBuf );
-        idArrayBuf->ResizeL( KLcMaxBufLength );
-        
-        TPtr8   idArrayPtr( idArrayBuf->Ptr(0));
-        
-        iLcRegAppStore->GetUuidValueL( idArrayPtr );        
-        
-        if( idArrayPtr.Length() > 0 )
-	        {
-	        // Create a Read buffer stream to read the App Ids    
-	        RBufReadStream  appReadStream( *idArrayBuf, 0 );
-	        CleanupClosePushL( appReadStream );
-	        
-	        iMiddleArray.ResetAndDestroy();  
-	                        
-	        // Internalize the structure to obtain the Actual list of Ids    
-	        iMiddleArray.InternalizeL( appReadStream );  
-	        CleanupStack::PopAndDestroy(); // appReadStream
-	        }
-        CleanupStack::PopAndDestroy( idArrayBuf );
-		}
-	else
-		{
-		// Deep RFS handling
-	    iLcRegAppStore->AddDataToTableL( KNullDesC8 );	
-		}
-		
-    CleanupStack::PopAndDestroy( buffer );   
-    }  
-
-// ---------------------------------------------------------------------------
-// void CLcRegAppOrder::ParseCenRepKey
-// ---------------------------------------------------------------------------
-//
-void CLcRegAppOrder::ParseCenRepKeyL( RPointerArray< HBufC >&	aArray,
-    				     			 const TDesC&				aKey )
-	{
-	// If the length of the buffer is less than 4 digits, then terminate
-	// the function.
-	if( aKey.Length() < KLcNoofDigitsInInteger )
-		{
-		return;
-		}
-	TUint count = ParseInteger( aKey );
-	TInt currentlength = KLcNoofDigitsInInteger;
-		
-	for ( TInt i = 0; i < count; i ++ )
-		{
-		// If the length of the buffer is less than 4 digits, then terminate
-		// the function.		
-		if( aKey.Right( aKey.Length() - currentlength ).Length() < KLcNoofDigitsInInteger )
-			{
-			return;
-			}
-			
-		TUint32 len = ParseInteger( aKey.Right( aKey.Length() - currentlength ));
-		currentlength += KLcNoofDigitsInInteger;
-		
-		TPtrC buffer( aKey.Right( aKey.Length() - currentlength ));
-		
-		// If the length of the buffer is less than the length obtained from the
-		// previous operation then terminate the function.
-		if( buffer.Length() < len )
-			{
-			return;
-			}
-		HBufC* identifier = HBufC::NewLC( currentlength );
-		identifier->Des().Copy( buffer.Ptr(), len );
-		
-		TInt error = aArray.Append( identifier );
-		if( error )
-			{
-			CleanupStack::PopAndDestroy( identifier );
-			}
-		else
-			{
-			CleanupStack::Pop( identifier );
-			}
-		currentlength += len;			
-		}
-	}
-    				     
-// ---------------------------------------------------------------------------
-// void CLcRegAppOrder::ParseInteger
-// ---------------------------------------------------------------------------
-//
-TUint32	CLcRegAppOrder::ParseInteger( const TDesC&	aBuffer )
-	{
-	TPtrC buffer( aBuffer.Ptr(), KLcNoofDigitsInInteger );
-		
-	TBuf8< KLcNoofDigitsInInteger > integerBuf;
-	integerBuf.Copy( buffer );
-	
-	TUint8*	currentPtr = const_cast< TUint8 *>( integerBuf.Ptr());
-	TUint32 integer = 0;
-	for( TInt i = 0; i < KLcNoofDigitsInInteger; i++ )
-		{
-		integer += ( integer * 10 ) + ( currentPtr[i] - '0' );
-		}
-	return integer;
-	}
-	
-// ---------------------------------------------------------------------------
-// void CLcRegAppOrder::GetRegisteredAppOrder
-// ---------------------------------------------------------------------------
-//
-TInt CLcRegAppOrder::GetRegisteredAppOrder(const TDesC& aUuid,
-												 TInt& aRowPos )
-    {
-    // search the identifier in the top array.
-    for(TInt i = 0; i <iTopArray.Count(); i++  )
-	    {
-	    HBufC* identifier = iTopArray[i];
-	    if( !identifier->Des().Compare( aUuid ) )
-		    {
-			aRowPos = i;
-			return KErrNone;	    			    	
-		    }
-	    }
-	    
-    // search the identifier in the middle array.
-    for(TInt i = 0; i <iMiddleArray.Count(); i++  )
-	    {
-	    HBufC* identifier = iMiddleArray[i];
-	    if( !identifier->Des().Compare( aUuid ) )
-		    {
-			aRowPos = iTopArray.Count() + i;
-			return KErrNone;	    			    	
-		    }
-	    }
-	    	
-    // search the identifier in the top array.
-    for(TInt i = 0; i <iBottomArray.Count(); i++  )
-	    {
-	    HBufC* identifier = iBottomArray[i];
-	    if( !identifier->Des().Compare( aUuid ) )
-		    {
-			aRowPos = iTopArray.Count() + iMiddleArray.Count() + i;
-			return KErrNone;	    			    	
-		    }
-	    }
-	return KErrNotFound;	    
-    }  
-
-// ---------------------------------------------------------------------------
-// void CLcRegAppOrder::RemoveArray
-// ---------------------------------------------------------------------------
-//
-void CLcRegAppOrder::RemoveArrayL(const TDesC& aUuid )
-    {
-    // search the identifier in the middle array.
-    for(TInt i = 0; i <iMiddleArray.Count(); i++  )
-	    {
-	    HBufC* identifier = iMiddleArray[i];
-	    if( !identifier->Des().Compare( aUuid ) )
-		    {
-			iMiddleArray.Remove(i);
-			// now delete the identifier
-			delete identifier;
-			identifier = NULL;
-			break;	    			    	
-		    }
-	    }
-	    
-    // Create the buffer for packing the Application Information
-    // structure and pack the contents into this buffer
-    CBufFlat* buffer = CBufFlat::NewL( iMiddleArray.BufferLength());
-    CleanupStack::PushL( buffer );
-    
-    RBufWriteStream writeStream( *buffer, 0 );
-    CleanupClosePushL( writeStream );                
-    iMiddleArray.ExternalizeL( writeStream );
-    CleanupStack::PopAndDestroy(); // writeStream    	
-    iLcRegAppStore->AddDataToTableL( buffer->Ptr(0));
-	CleanupStack::PopAndDestroy( buffer );
-	// Now get the id index.
-	if( iMiddleArray.Count() == 0 )
-		{
-		User::LeaveIfError( iRepository->Set( ELcMiddle, 0 ));			
-		}
-    }  
-
-// ---------------------------------------------------------------------------
-// void CLcRegAppOrder::AppendArray
-// ---------------------------------------------------------------------------
-//
-TInt CLcRegAppOrder::AppendArrayL(const TDesC& aUuid )
-    {
-    HBufC* identifier = HBufC::NewL( aUuid.Length() );
-    identifier->Des().Copy( aUuid );	
-	User::LeaveIfError( iMiddleArray.Append( identifier ));
-    // Create the buffer for packing the Application Information
-    // structure and pack the contents into this buffer
-    CBufFlat* buffer = CBufFlat::NewL( iMiddleArray.BufferLength());
-    CleanupStack::PushL( buffer );
-    
-    RBufWriteStream writeStream( *buffer, 0 );
-    CleanupClosePushL( writeStream );                
-    iMiddleArray.ExternalizeL( writeStream );
-    CleanupStack::PopAndDestroy(); // writeStream
-   	
-	iLcRegAppStore->AddDataToTableL( buffer->Ptr(0));
-	
-	CleanupStack::PopAndDestroy( buffer );
-
-	TInt index;
-	if ( GetRegisteredAppOrder(aUuid, index ) == KErrNotFound )
-		{
-		User::Leave( KErrNotFound );
-		}
-	User::LeaveIfError( iRepository->Set( ELcMiddle, 1 ));	
-	return index;			
-    }
-    
-//End of file
-
-