engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdecommand.h
changeset 71 27f2d7aec52a
parent 69 45459746d5e8
child 72 0a8e959402e5
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdecommand.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#ifndef _C_GLXDATASOURCETASKMDECOMMAND_H_
-#define _C_GLXDATASOURCETASKMDECOMMAND_H_
-
-/**
- * @internal reviewed 10/07/2007 by M Byrne
- */
-
-
-// INCLUDES
-#include <e32cmn.h>
-#include <glxcommandparser.h>
-#include <mdequery.h>
-#include <mdeitem.h>
-#include <mglxtnthumbnailcreatorclient.h>
-#include <glxcommandrequest.h>
-#include "glxdatasourcetaskmde.h"
-
-// FORWARD DECLARATIONS
-class CGlxDataSourceMde;
-class CGlxRequest;
-class CMdENamespaceDef;
-class CMdEObjectDef;
-class CMdEObjectQuery;
-class CMdERelationDef;
-class CMdERelationQuery;
-class CMdESession;
-
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
- *  CGlxDataSourceTaskMdeCommand class 
- *
- */
-NONSHARABLE_CLASS( CGlxDataSourceTaskMdeCommand ) : public CGlxDataSourceTaskMde, 
-									                public MGlxCommandParserCallback
-
-	{
-public: // Constructors / Destructors
-    /**
-     * Constructor.
-     * @param aRequest request to be executed.
-     * @param aObserver observer to be informed when task has completed.
-     * @param aDataSource data source to be used by this object.
-     */
-     CGlxDataSourceTaskMdeCommand(CGlxCommandRequest* aRequest, MGlxDataSourceRequestObserver& aObserver,
-             CGlxDataSource* aDataSource);
-
-     /**
-      * Symbian 2nd stage constructor
-      * See @ref CGlxDataSourceTaskMde::ConstructL
-      */
-     void ConstructL();
-     
-     /**
-      * Destructor
-      */
-     ~CGlxDataSourceTaskMdeCommand();
-
-private: // From MGlxCommandParserCallback	
- 
-     /**
-      * See @ref MGlxCommandParserCallback::AddContainerL
-      */ 
-     void AddContainerL(const TDesC& aContainerName);
- 
-     /**
-     * See @ref MGlxCommandParserCallback::AddToContainerL
-     */ 
-     void AddToContainerL(const RArray<TGlxMediaId>& aSourceIds, const RArray<TGlxMediaId>& aTargetContainers);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::AddToContainerL
-      */ 
-     void AddToContainerL(const TDesC& aSourceUri, const RArray<TGlxMediaId>& aTargetContainers);    
-     
-     /**
-      * See @ref MGlxCommandParserCallback::CopyL
-      */ 
-     void CopyL(const RArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::MoveL
-      */ 
-     void MoveL(const RArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::RemoveFromContainerL
-      */ 
-     void RemoveFromContainerL(const RArray<TGlxMediaId>& aItemIds, const TGlxMediaId& aContainerId);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::DeleteL
-      */ 
-     void DeleteL(const RArray<TGlxMediaId>& aItemIds);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::RenameL
-      */ 
-     void RenameL(const TGlxMediaId& aSourceItemId, const TDesC& aTitle);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::SetDescriptionL
-      */ 
-     void SetDescriptionL(const RArray<TGlxMediaId>& aItemIds, const TDesC& aDescription);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::SetCaptureLocationL
-      */ 
-     void SetCaptureLocationL(const RArray<TGlxMediaId>& aItemIds, const TCoordinate& aCoordinate);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::ThumbnailCleanupL
-      */ 
-     void ThumbnailCleanupL();
-     
-private: // from CGlxDataSourceTaskMde
-	
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoHandleQueryCompletedL
-     */
-    void DoHandleQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoNextQueryL
-     */
-    void DoNextQueryL();
-
-private: 
-    
-    /**
-     * Enumeration to describe file operations
-     * (Copy or Move)
-     */
-	enum TFileOperation
-	{
-		ECopy,
-		EMove
-	};
-	
-    /**
-	 * Perform a file operation (copy or move).
-	 * @param aSourceIds an array of media ids to copy or move.
-	 * @param aDrive destination drive.
-	 * @param aFileOperation file operation to perform (either a copy or a move) 
-	 */
-	void FileOperationL(const TArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive, TFileOperation aFileOperation);
-	
-    /**
-	 * Gets the container id for a given media id.
-	 * If aMedia id is KGlxCollectionRootId (0) then container id
-	 * is determined using the collection id. E.g. if the aMediaId
-	 * is KGlxCollectionRootId and the collection uid is 
-	 * KGlxCollectionPluginCameraImplementationUid
-	 * then the camera album id is returned by the method.
-	 * When aMedia id is not equal to KGlxCollectionRootId, (the 
-	 * vast majority of cases) the container id returned by the method
-	 * will be the same as the media id passed in.
-	 * 
-	 * @param aMediaId should be either a valid container id or KGlxCollectionRootId
-	 * @return a container id.
-	 */
-	TMdEItemId ContainerItemId(const TGlxMediaId& aMediaId);
-	
-	/**
-	 * Uses the PathInfo class to determine the 'root' path for 
-	 * a given drive. The 'root' path is C:\data for the C drive and
-	 * x:\ for all other drives (where x is a drive letter)
-	 * @param aDrive the drive for which the root path is required.
-	 * @param aRootPath on return contains the root path.
-	 */
-	void RootPath(const TDesC& aDrive, TDes& aRootPath);
-   
-    /**
-     * Copies items from a TGlxMedia array to a TItemId array.
-     * @param aDestArray destination array. (It is the callers responsibility to ensure that aDestArray is on
-     *                                       the cleanup stack should this be required)
-     * @param aSourceArray source array.
-     */
-    void CopyArrayL(RArray<TItemId>& aDestArray, const RArray<TGlxMediaId>& aSourceArray); 
-    
-    /**
-     * Sends progress messages to the client
-     * @param aCurrentStep number of currently completed steps.
-     * @param aStepCount number of total steps to completion.
-     */
-    void SendProgressMessageL(TInt aCurrentStep, TInt aStepCount);
-    
-    /** 
-     * Returns the container object definition (either album or tag)
-     * the container object definition is calculated based on the
-     * collection plug-in id associated with the task.
-     * @param aContainerObjectDef a pointer to the container object
-     * definition associated with the collection plugin if the 
-     * function completes with out error. The caller does not take
-     * ownership of the pointer.
-     * @return KErrNone if the collection plug-in has a container
-     * object definition associated with it or a system wide
-     * error code.
-     */
-    TInt ContainerObjectDef(CMdEObjectDef*& aContainerObjectDef);
-    
-    /**
-     * Handle the completion of a 'add to container' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleAddToContainerQueryCompletedL(CMdEQuery& aQuery);
-
-    /**
-     * Handle the completion of a 'add container' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleAddContainerQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Handle the completion of a 'delete containers' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleDeleteContainersQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Handle the completion of a 'delete items' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleDeleteItemsQueryCompletedL(CMdEQuery& aQuery);
-    
-    
-    /**
-     * Handle the completion of a 'rename' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleRenameQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Handle the completion of a 'rename container' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleRenameConainerQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Appends a query to the query queue that determines the number
-     * of container objects that have the title aTitle. This
-     * method is used to check to see if a container with a
-     * specific title exists. The container type is determined 
-     * using the ContainerObjectDef() method
-     * @aQueryType the query type.
-     * @aTitle title to search for.
-     */
-    void AppendContainerTitleCountQueryL(const TGlxQueryType& aQueryType, const TDesC& aTitle);
-    
-private: // from CGlxDataSourceTask
-	/**
-     * See @ref CGlxDataSourceTask::ExecuteRequestL
-     */
-	void ExecuteRequestL();
-
-private:	
-	/**
-	 * Default name space definition.
-	 */
-	CMdENamespaceDef* iDefaultNameSpaceDef; 
-	
-	/**
-	 * Collection uid.
-	 */
-	TUid iCollectionUid;
-	
-	/**
-	 * Before new relations are added to the database, a check must be made to see if 
-     * identical relations already exist. This is done asynchronously so they need to 
-     * be stored temporarily as a member variable.
-	 */
-	RArray<TItemId> iLeftIds;
-    
-    /**
-     * Before new relations are added to the database, a check must be made to see if 
-     * identical relations already exist. This is done asynchronously so they need to 
-     * be stored temporarily as a member variable.
-     */
-    RArray<TItemId> iRightIds;
-    
-    /**
-     * Used to store object titles while asynchronous operations are in progress.
-     * (owned)
-     */
-    HBufC* iTitle;
-    
-    /**
-     * Used to store the object to rename while asynchronous operations are in progress.
-     * (owned)
-     */
-    CMdEObject* iObjectToRename;
-	};
-
-#endif //_C_GLXDATASOURCETASKMDECOMMAND_H_