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 __LOGSERVOPERATIONFACTORY_H__
sl@0: #define __LOGSERVOPERATIONFACTORY_H__
sl@0: 
sl@0: #include <e32base.h>
sl@0: #include "LogServDefs.h"
sl@0: #include "LogCliServShared.h"
sl@0: 
sl@0: // Classes referenced
sl@0: class CLogPackage;
sl@0: class CLogServViewBase;
sl@0: class CLogServOperationBase;
sl@0: class MLogServTaskInterface;
sl@0: class MLogServBackupInterface;
sl@0: class MLogServOperationManager;
sl@0: class MLogServDatabaseTransactionInterface;
sl@0: 
sl@0: /**
sl@0: A factory class, used for creation of operation objects and queueing them for execution.
sl@0: 
sl@0: Operation objects. Every operation class derives from CLogServOperationBase.
sl@0: 
sl@0: @see CLogServOperationBase
sl@0: 
sl@0: @see CLogServOpEventAdd
sl@0: @see CLogServOpEventGet
sl@0: @see CLogServOpEventChange
sl@0: @see CLogServOpEventDelete
sl@0: @see CLogServOpTypeAdd
sl@0: @see CLogServOpTypeGet
sl@0: @see CLogServOpTypeChange
sl@0: @see CLogServOpTypeDelete
sl@0: @see CLogServOpClearLog
sl@0: @see CLogServOpClearRecent
sl@0: @see CLogServOpConfigGet
sl@0: @see CLogServOpConfigChange
sl@0: @see CLogServOpMaintenance
sl@0: 
sl@0: @see CLogServOpViewSetup
sl@0: @see CLogServOpViewEventRemove
sl@0: @see CLogServOpViewClearDuplicates
sl@0: @see CLogServOpViewSetFlags
sl@0: @see CLogServOpViewWindowFetcher
sl@0: 
sl@0: View objects.Every view class derives from CLogServViewBase.
sl@0: 
sl@0: @see CLogServViewBase
sl@0: 
sl@0: @see CLogServViewEvent
sl@0: @see CLogServViewRecent
sl@0: @see CLogServViewDuplicate
sl@0: 
sl@0: The class also offers a factory method for views creation - NewViewL().
sl@0: All created objects accept a reference to the MLogServOperationManager object and add themselves to the
sl@0: operations queue.
sl@0: 
sl@0: @see MLogServOperationManager
sl@0: 
sl@0: @internalComponent
sl@0: */
sl@0: class LogServFactory
sl@0: {
sl@0: public:
sl@0: 	static CLogServOperationBase* NewOperationL(const TLogClientServerData& aCliServData,
sl@0: 												MLogServTaskInterface& aTaskInterface,
sl@0: 												MLogServOperationManager& aOperationManager,
sl@0: 												const RMessage2& aMessage,
sl@0: 												CLogPackage& aLogPackage,
sl@0: 												TLogServSessionId aSessionId
sl@0: 												);
sl@0: 
sl@0: 	static CLogServOperationBase* NewViewOperationL(const TLogClientServerData& aCliServData,
sl@0: 												MLogServTaskInterface& aTaskInterface,
sl@0: 												MLogServOperationManager& aOperationManager,
sl@0: 												const RMessage2& aMessage,
sl@0: 												CLogPackage& aLogPackage,
sl@0: 												TLogServSessionId aSessionId,
sl@0: 												CLogServViewBase& aView
sl@0: 												);
sl@0: 
sl@0: 
sl@0: 	static CLogServViewBase* NewViewL(TLogViewType aType,
sl@0: 									  TLogViewId aId,
sl@0: 									  MLogServDatabaseTransactionInterface& aDatabase,
sl@0: 									  MLogServBackupInterface& aBackupInterface,
sl@0: 									  CLogPackage& aPackage,
sl@0: 									  const RMessage2& aMessage
sl@0: 									  );
sl@0: };
sl@0: 
sl@0: #endif
sl@0: