sl@0: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef __LOGSERVSERVER_H__ sl@0: #define __LOGSERVSERVER_H__ sl@0: sl@0: #include sl@0: #include "LogCliServShared.h" sl@0: #include "LogServSessionLifetimeObserver.h" sl@0: sl@0: // Classes referenced sl@0: class CLogServRecentListManager; sl@0: class CLogServOperationQueue; sl@0: class CLogServDatabaseDriver; sl@0: class CLogServDatabaseMarshall; sl@0: class CLogServResourceInterpreter; sl@0: class CLogServBackupManager; sl@0: class CLogServShutdownTimer; sl@0: class CLogServDatabaseChangeTracker; sl@0: sl@0: /** sl@0: The LogEng server class. Implements the MLogServSessionLifetimeObserver interface. sl@0: Owns the following objects (private data members): sl@0: - Shutdown timer (CLogServShutdownTimer instance); sl@0: - Backup manager (CLogServBackupManager instance); sl@0: - Resource interpreter (CLogServResourceInterpreter instance); sl@0: - CLogServDatabaseMarshall instance; sl@0: - CLogServDatabaseChangeTracker instance; sl@0: - CLogServDatabaseDriver instance; sl@0: - CLogServOperationQueue instance; sl@0: sl@0: @see MLogServSessionLifetimeObserver sl@0: @see CLogServShutdownTimer sl@0: @see CLogServBackupManager sl@0: @see CLogServResourceInterpreter sl@0: @see CLogServDatabaseMarshall sl@0: @see CLogServDatabaseChangeTracker sl@0: @see CLogServDatabaseDriver sl@0: @see CLogServOperationQueue sl@0: @internalComponent sl@0: */ sl@0: class CLogServServer : public CServer2, public MLogServSessionLifetimeObserver sl@0: { sl@0: public: sl@0: static CLogServServer* NewLC(); sl@0: ~CLogServServer(); sl@0: void MakeTransient(TBool aTransient); sl@0: sl@0: private: sl@0: CLogServServer(); sl@0: void ConstructL(); sl@0: // FROM MLogServSessionLifetimeObserver sl@0: void SLOHandleEvent(TLogServSessionId aId, TLogServSessionEvent aEvent); sl@0: // FROM CServer sl@0: CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const; sl@0: sl@0: private: sl@0: TInt iSessionCount;//Number of connected sessions sl@0: TBool iTransient;//Whether the server is transient or not sl@0: TLogServSessionId iNextFreeSessionId;//The next id to assign to any new session sl@0: TLogOperationId iNextFreeOperationId;//The next free id to assign to an operation sl@0: TLogViewId iNextFreeViewId;//The next free id to assign to a view sl@0: RFs iFsSession; sl@0: CLogServShutdownTimer* iShutdownTimer; sl@0: CLogServBackupManager* iBackupManager; sl@0: CLogServResourceInterpreter* iResourceInterpreter; sl@0: CLogServRecentListManager* iRecentListManager; sl@0: CLogServDatabaseMarshall* iDatabaseMarshall; sl@0: CLogServDatabaseChangeTracker* iChangeTracker; sl@0: CLogServDatabaseDriver* iDatabaseDriver; sl@0: CLogServOperationQueue* iOperationQueue; sl@0: }; sl@0: sl@0: #endif