xdmprotocols/XcapProtocol/XcapCache/Server/src/XcapCacheServer.cpp
branchGCC_SURGE
changeset 28 d9861ae9169c
parent 23 77cb48a03620
parent 26 04ca1926b01c
--- a/xdmprotocols/XcapProtocol/XcapCache/Server/src/XcapCacheServer.cpp	Thu Jul 01 14:09:06 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-/*
-* Copyright (c) 2005 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:   CXcapCacheServer
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <e32std.h>
-#include <e32math.h>
-#include <flogger.h>
-#include <centralrepository.h>
-#include <XdmEngineDomainCRKeys.h>
-#include "XcapCacheIndex.h"
-#include "XcapCacheServer.h"
-#include "XcapCacheSession.h"
-#include "XcapCacheIndexAdmin.h"
-#include "XcapCacheServerMain.h"
-
-GLDEF_C void PanicServer( TXcapCacheServerPanic aPanic )
-    {
-    _LIT( KCacheServerPanic, "XcapCacheServer");
-    User::Panic( KCacheServerPanic, aPanic );
-    }
-
-// ----------------------------------------------------------
-// CXcapCacheServer::New
-// 
-// ----------------------------------------------------------
-//
-CServer2* CXcapCacheServer::NewLC()
-    {
-    CXcapCacheServer* self = new CXcapCacheServer( EPriorityHigh );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// ----------------------------------------------------------
-// CXcapCacheServer::New
-// 
-// ----------------------------------------------------------
-//
-void CXcapCacheServer::ConstructL()
-    {
-    ReadMaxCacheSizeL();
-    User::LeaveIfError( iFileSession.Connect() );
-    StartL( KXcapCacheServerLib );
-    iShutdownTimer.ConstructL();
-    iShutdownTimer.Start();
-    }
-    
-// ----------------------------------------------------------
-// CXcapCacheServer::NewSessionL
-// 
-// ----------------------------------------------------------
-//
-CSession2* CXcapCacheServer::NewSessionL( const TVersion& aVersion,
-        								  const RMessage2& /*aMessage*/ ) const
-    {
-    // Check version number of API against our known version number.
-    TVersion thisVersion( KCacheServerMajorVersionNumber,
-                          KCacheServerMinorVersionNumber,
-                          KCacheServerBuildVersionNumber );
-    if( !User::QueryVersionSupported( thisVersion, aVersion ) ) 
-        User::Leave( KErrNotSupported );
-    return CXcapCacheSession::NewL( ( CXcapCacheServer* )this );
-    }
-
-// ----------------------------------------------------------
-// CXcapCacheServer::CXcapCacheServer
-// 
-// ----------------------------------------------------------
-//
-CXcapCacheServer::~CXcapCacheServer()
-    {
-    iFileSession.Close();
-    }
-
-// ----------------------------------------------------------
-// CXcapCacheServer::ReadMaxCacheSizeL
-// 
-// ----------------------------------------------------------
-//
-void CXcapCacheServer::ReadMaxCacheSizeL()
-    {
-    #ifdef _DEBUG
-        CXcapCacheServer::WriteToLog( _L8( "CXcapCacheServer::ReadMaxCacheSizeL()" ) );
-    #endif
-    CRepository* repository = CRepository::NewL( KCRUIDXDMEngineXcapLocal );
-    CleanupStack::PushL( repository );
-    TInt error = repository->Get( KXDMXcapCacheSize, iMaxCacheSize );
-    //If something went wrong, just use 30 KB as a default value
-    if( error != KErrNone )
-        {
-        #ifdef _DEBUG
-            CXcapCacheServer::WriteToLog( _L8( "Reading from CenRep failed: %d => Default to 30 KB" ), error );
-        #endif
-        iMaxCacheSize = 30000;
-        }
-    else
-        {
-        #ifdef _DEBUG
-            CXcapCacheServer::WriteToLog( _L8( "  Max cache size is %d KB" ), iMaxCacheSize );
-        #endif  
-        iMaxCacheSize = iMaxCacheSize * 1000;
-        }
-    CleanupStack::PopAndDestroy();  //repository
-    }
-
-// ----------------------------------------------------------
-// CXcapCacheServer::CXcapCacheServer
-// 
-// ----------------------------------------------------------
-//
-CXcapCacheServer::CXcapCacheServer( TInt aPriority ) : CServer2( aPriority )
-    {
-    }
-
-// ----------------------------------------------------------
-// CXcapCacheServer::AddSession
-//
-// ----------------------------------------------------------
-//
-void CXcapCacheServer::AddSession()
-    {
-    #ifdef _DEBUG
-        CXcapCacheServer::WriteToLog( _L8( "CXcapCacheServer::AddSession()" ) );
-    #endif
-	++iSessionCount;
-	iShutdownTimer.Cancel();
-    }
-        
-// ----------------------------------------------------------
-// CXcapCacheServer::DropSession
-// 
-// ----------------------------------------------------------
-//
-void CXcapCacheServer::DropSession()
-    {
-    #ifdef _DEBUG
-        CXcapCacheServer::WriteToLog( _L8( "CXcapCacheServer::DropSession()" ) );
-    #endif
-	if( --iSessionCount == 0 )
-		CActiveScheduler::Stop();
-    }
-    
-// ----------------------------------------------------------
-// CXcapCacheServer::ConvertDesc
-// 
-// ----------------------------------------------------------
-//
-TInt CXcapCacheServer::ConvertDesc( const TDesC8& aNumberDesc )
-    {
-    TInt ret = 0;
-    TLex8 lex( aNumberDesc );
-    TInt error = lex.Val( ret );
-    return error == KErrNone ? ret : error;
-    }
-
-// ---------------------------------------------------------
-// CXcapCacheServer::Date
-// 
-// ---------------------------------------------------------
-//
-TBuf<KDateMaxSize> CXcapCacheServer::Date()
-    {
-    TTime time;
-    TBuf<KDateMaxSize> dateBuffer;
-    dateBuffer.SetLength( 0 );
-	time.HomeTime();
-    time.FormatL( dateBuffer, KCacheDateFormat );
-    return dateBuffer;
-    }
-
-// ---------------------------------------------------------
-// CXcapCacheServer::DateTime
-// 
-// ---------------------------------------------------------
-//
-TBuf<KDateTimeMaxSize> CXcapCacheServer::DateTime()
-    {
-    TTime time;
-    TBuf<KDateMaxSize> dateBuffer;
-	time.HomeTime();
-    time.FormatL( dateBuffer, KDateFormatFileName );
-    TBuf<KDateMaxSize> timeBuffer;
-	time.HomeTime();
-	time.FormatL( timeBuffer, KTimeFormatFileName );
-    TBuf<KDateTimeMaxSize> buffer;
-    buffer.SetLength( 0 );
-    buffer.Copy( dateBuffer );
-    buffer.Append( timeBuffer );
-    return buffer;
-    }
-
-// ---------------------------------------------------------
-// CXcapCacheServer::DateTime
-// 
-// ---------------------------------------------------------
-//
-TBuf<KDateTimeMaxSize> CXcapCacheServer::DateTime( const TTime& aTime )
-    {
-    TBuf<KDateTimeMaxSize> dateTimeBuffer;
-    aTime.FormatL( dateTimeBuffer, KDateTimeFormat );
-    return dateTimeBuffer;
-    }
-    
-// ----------------------------------------------------------
-// CXcapCacheServer::MaxCacheSize
-// 
-// ----------------------------------------------------------
-//
-TInt CXcapCacheServer::MaxCacheSize() const
-    {
-    return iMaxCacheSize;
-    }
-    
-// ---------------------------------------------------------
-// CXcapCacheServer::CacheSize
-// 
-// ---------------------------------------------------------
-//
-TInt CXcapCacheServer::CacheSize( TInt& aEntryCount )
-    {
-    #ifdef _DEBUG
-	    CXcapCacheServer::WriteToLog( _L8( "CXcapCacheServer::CacheSize()" ) );
-	#endif
-    TInt total = 0;
-    TInt entryCount = 0;
-    CDir* directory = NULL;
-    User::LeaveIfError( iFileSession.GetDir( KCacheServerRoot, KEntryAttNormal,
-                                             ESortNone, directory ) );
-    CleanupStack::PushL( directory );
-    entryCount = directory->Count();
-    for( TInt i = 0;i < entryCount;i++ )
-        total = total + ( *directory )[i].iSize;
-    #ifdef _DEBUG
-	    CXcapCacheServer::WriteToLog( _L8( " Entries:    %d " ), entryCount );
-	    CXcapCacheServer::WriteToLog( _L8( " Total size: %d bytes" ), total );
-	#endif
-	CleanupStack::PopAndDestroy();
-	aEntryCount = entryCount;
-	return total;
-    }
-
-// ---------------------------------------------------------
-// CXcapCacheServer::RandomString
-// 
-// ---------------------------------------------------------
-//
-TBuf<KRandStringLength> CXcapCacheServer::RandomString()
-    {
-    const TInt charCount( sizeof( KRandomStringCharArray ) / sizeof( TInt ) );
-    TBuf<KRandStringLength> buffer;
-    buffer.Zero();
-    for( TInt i = 0; i < KRandStringLength;i++ )
-        {
-        TInt index = Math::Random() % charCount;
-        buffer.Append( ( TChar )KRandomStringCharArray[index] );
-        }
-    return buffer;
-    }
-
-// ---------------------------------------------------------
-// CXcapCacheServer::Time
-// 
-// ---------------------------------------------------------
-//
-TBuf<KDateMaxSize> CXcapCacheServer::Time()
-    {
-    TTime time;
-    TBuf<KDateMaxSize> timeBuffer;
-	timeBuffer.SetLength( 0 );
-	time.HomeTime();
-	time.FormatL( timeBuffer, KCacheTimeFormat );
-    return timeBuffer;
-    }
-
-// ---------------------------------------------------------
-// CXcapCacheServer::DescriptorCast
-//
-// ---------------------------------------------------------
-//
-TPtr8 CXcapCacheServer::DescriptorCast( const TDesC8& aConstData )
-	{
-    TInt length = aConstData.Length();
-    TPtr8 constCast( CONST_CAST( TUint8*, aConstData.Ptr() ), length, length );
-    constCast.TrimAll();
-    return constCast;
-	}
-
-// ----------------------------------------------------
-// CXcapCacheServer::FileSession
-// 
-// ----------------------------------------------------
-//
-RFs& CXcapCacheServer::FileSession()
-    {
-    return FsSession;
-    }
-
-// ----------------------------------------------------
-// CXcapCacheServer::FileSession
-// 
-// ----------------------------------------------------
-//
-CXcapCacheIndex* CXcapCacheServer::Index()
-    {
-    return CacheIndex;
-    }
-
-// ----------------------------------------------------
-// CXcapCacheServer::FileSession
-// 
-// ----------------------------------------------------
-//
-CXcapCacheIndexAdmin* CXcapCacheServer::IndexAdmin()
-    {
-    return CacheIndexAdmin;
-    }
-
-// ----------------------------------------------------
-// CXcapCacheServer::StartThread
-// 
-// ----------------------------------------------------
-//
-EXPORT_C TInt CXcapCacheServer::StartThread()
-    {
-	User::LeaveIfError( User::RenameThread( KXcapCacheServerName ) );
-	CActiveScheduler* scheduler = new ( ELeave ) CActiveScheduler;
-	CleanupStack::PushL( scheduler );
-	CActiveScheduler::Install( scheduler );
-    User::LeaveIfError( FsSession.Connect() );
-    CleanupClosePushL( FsSession );
-    CXcapCacheServer::NewLC();
-    CacheIndex = CXcapCacheIndex::NewL();
-    CleanupStack::PushL( CacheIndex );
-    CacheIndexAdmin = CXcapCacheIndexAdmin::NewL();
-    CleanupStack::PushL( CacheIndexAdmin );
-    RProcess::Rendezvous( KErrNone );
-	#ifdef _DEBUG
-	    CXcapCacheServer::WriteToLog( _L8( "XcapCacheServer fully running" ) );
-	#endif
-	CActiveScheduler::Start();
-	#ifdef _DEBUG
-	    CXcapCacheServer::WriteToLog( _L8( "XcapCacheServer closing..." ) );
-    #endif
-	CleanupStack::PopAndDestroy( 5 );  //CacheIndexAdmin, CacheIndex, server, FsSession, scheduler
-	return KErrNone;
-    }
-
-// ----------------------------------------------------
-// CXcapCacheServer::WriteToLog
-// 
-// ----------------------------------------------------
-//
-EXPORT_C void CXcapCacheServer::WriteToLog( TRefByValue<const TDesC8> aFmt,... )
-    {
-    VA_LIST list;
-    VA_START( list, aFmt );
-    TBuf8<KServerLogBufferMaxSize> buf;
-    buf.FormatList( aFmt, list );
-    RFileLogger::Write( KCacheServerLogDir, KCacheServerLogFile, EFileLoggingModeAppend, buf );
-    RDebug::RawPrint( buf );
-    }
-    
-