installationservices/swinstallationfw/inc/siftransporttask.h
branchRCL_3
changeset 66 8b7f4e561641
parent 65 7333d7932ef7
child 70 e8965914fac7
--- a/installationservices/swinstallationfw/inc/siftransporttask.h	Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-* The file defines a base class for SIF Transport tasks and a factory function for them.
-*
-*/
-
-
-/**
- @file
- @publishedAll
- @released
-*/
-
-#ifndef SIFTRANSPORTTASK_H
-#define SIFTRANSPORTTASK_H
-
-#include <f32file.h>
-#include <usif/sif/sifcommon.h>
-
-namespace Usif
-	{
-
-	/** An auxiliary data structure for passing task's parameters across the SIF Transport library. */
-	struct TTransportTaskParams
-		{
-		IMPORT_C TTransportTaskParams();
-		CComponentInfo* iComponentInfo;
-		TComponentId iComponentId;
-		const TDesC* iFileName;
-		RFile* iFileHandle;
-		const COpaqueNamedParams* iCustomArguments;
-		COpaqueNamedParams* iCustomResults;
-		const TSecurityContext* iSecurityContext;
-		TRequestStatus* iRequestStatus;
-		enum { EInvalidComponentId = -1 };
-		};
-
-// ===========================================================================================================
-
-	/**
-	The core class of the SIF Transport library.
-	
-	It defines an abstract interface for SIF Transport tasks. These tasks are instantiated
-	and executed to handle processing of incoming software management requests.
-	
-	Each Transport task is executed in the context of the active object. If a task issues
-	a request to an asynchronous service provider, it should use a @see TRequestStatus
-	object provided in @see TTransportTaskParams. Otherwise, tasks that don't issue
-	asynchronous requests must complete this request status themselves before they leave
-	the @see CSifTransportTask::ExecuteImplL method. In order to simplify tasks that don't
-	deal with asynchronous service providers the AutoCompletion mode has been implementd. In this
-	mode the request status is completed automatically by the base class. The AutoCompletion
-	mode is enabled by default and should be disabled in constructors of tasks that issue
-	asynchronous requests.
-	
-	An implementation of the Transport Task Factory defined below is responsible for
-	instantiating Transport tasks.
-	*/
-	class CSifTransportTask : public CBase
-		{
-	protected:
-		/**
-		Constructs the object.
-		
-		@param aParams Parameters needed to execute the task. Please
-		see @see TTransportTaskParams for details.
-		@param aAutoCompletion Enables the AutoCompletion mode. 
-		*/
-		IMPORT_C CSifTransportTask(TTransportTaskParams& aParams, TBool aAutoCompletion = ETrue);
-
-		/** Destroys the object. */
-		IMPORT_C virtual ~CSifTransportTask();
-
-		/**
-		Implementation of this abstract method is supposed to process an incoming software
-		management request.
-		
-		If this method leaves with any error code the execution of the task terminates
-		immediately. The leave code is passed to the user as a request completion code.
-		
-		@return TBool, ETrue it the processing of a software management request has been
-		completed and the task can be cleaned up, EFalse if the method must be called again
-		for further processing.
-		*/
-		IMPORT_C virtual TBool ExecuteImplL() = 0;
-		
-		/**
-		Cancels the execution of an asynchronous task.
-		
-		The default implementation is empty. Tasks that issue requests to asynchronous
-		service providers must implement this method in order to cancel them.
-		*/
-		IMPORT_C virtual void CancelImpl();
-
-		/** Gets the id of a component */
-		IMPORT_C TComponentId ComponentId() const;
-		/** Gets the file name of a package */
-		IMPORT_C const TDesC* FileName() const;
-		/** Gets the file handle of a package */
-		IMPORT_C RFile* FileHandle();
-		/** Gets custom arguments */
-		IMPORT_C const COpaqueNamedParams* CustomArguments() const;
-		/** Gets custom results */
-		IMPORT_C COpaqueNamedParams* CustomResults();
-		/** Gets security context */
-		IMPORT_C const TSecurityContext* SecurityContext() const;
-		/** Gets request status associated with the task */
-		IMPORT_C TRequestStatus* RequestStatus();
-		/** Gets component info */
-		IMPORT_C CComponentInfo* ComponentInfo();
-
-	private:
-		// These methods are used only by the CSifTransportRequest class to execute and cancel SIF Transport tasks
-		friend class CSifTransportRequest;
-		TBool Execute();
-		void Cancel();
-
-	private:
-		CSifTransportTask(const CSifTransportTask&);
-		CSifTransportTask& operator=(const CSifTransportTask&);
-		
-		TTransportTaskParams& iParams;
-		TBool iAutoCompletion;
-		};
-
-// ===========================================================================================================
-
-	/**
-	Definition of a factory function for the SIF Transport library. The @see SifTransportRequest class uses implementations
-	of this function to instantiate and execute appropriate SIF Transport tasks. It happens in response to incoming software
-	management requests.
-	*/
-	namespace TransportTaskFactory
-		{
-		enum TTaskType
-			{
-			EGetComponentInfo,
-			EInstall,
-			EUninstall,
-			EActivate,
-			EDeactivate
-			};
-
-		typedef CSifTransportTask* (*GenerateTask)(TTaskType aTaskType, TTransportTaskParams& aParams);
-		}
-
-	} // namespace Usif
-
-#endif // SIFTRANSPORTTASK_H