serviceproviders/sapi_landmarks/landmarksservice/inc/clandmarkoperation.h
changeset 37 5d0ec8b709be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_landmarks/landmarksservice/inc/clandmarkoperation.h	Thu Dec 17 09:09:50 2009 +0200
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2005-2006 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:  CLandmarkCmdGetLandmarks class
+ *
+*/
+
+#ifndef CLANDMARKCMDLINKCATEGORIES_H_
+#define CLANDMARKCMDLINKCATEGORIES_H_
+
+// INCLUDES
+#include "clandmarkcmdbase.h"
+#include <EPos_Landmarks.h>
+
+class CPosLmCategoryManager;
+class MLandmarkObserver;
+class CLandmarkManageObjects;
+class CLandmarkHandler;
+class CPosLandmarkParser;
+class CPosLandmarkEncoder;
+class CPosLandmarkDatabase;
+/**
+ * CLandmarkOperation
+ * This class processes the async request for retrieval of landmark categories from the landmark
+ * database. It implements the StartL ( CLandmarkHandler* aHandle, TInt32 aTransactionId, CLandmarkFilter* aFilter )
+ * of CLandmarkCmdBase. After completion of the aynchronous request the MLandmarkObserver instance is notified
+ * and the garbage collector is set active.
+ */
+// CLASS DECLARATION
+NONSHARABLE_CLASS(CLandmarkOperation) : public CActive
+	{
+public:
+	enum TOperation
+		{
+		EOrganise,
+		EImport,
+		EExport,
+		};
+public:
+	// New methods
+
+	/**
+	 * NewL.
+	 * Two-phased constructor.
+	 * Create a CLandmarkOperation object.
+	 * @param aObserver The pointer to the observer for this object.
+	 * @param aManageObjects The pointer to the garbage collector.
+	 * @return A pointer to the created instance of CLandmarkOperation.
+	 */
+	static CLandmarkOperation* NewL(MLandmarkObserver* aObserver,
+			CLandmarkManageObjects* aManageObjects);
+
+	/**
+	 * NewLC.
+	 * Two-phased constructor.
+	 * Create a CLandmarkOperation object.
+	 * @param aObserver The pointer to the observer for this object.
+	 * @param aManageObjects The pointer to the garbage collector.
+	 * @return A pointer to the created instance of CLandmarkOperation.
+	 */
+	static CLandmarkOperation* NewLC(MLandmarkObserver* aObserver,
+			CLandmarkManageObjects* aManageObjects);
+
+	/**
+	 * ~CLandmarkOperation
+	 * Destructor.
+	 */
+	~CLandmarkOperation();
+
+public:
+	// From CLandmarkCmdBase
+
+	// This functions proceeds with the incremental search.
+	void LinkL(TInt32 aTransactionId, TPosLmItemId aCategoryId, RArray<
+			TPosLmItemId>& aLandmarkIdArray,
+			CPosLmCategoryManager* aCategoryManager);
+
+	void UnLinkL(TInt32 aTransactionId, TPosLmItemId aCategoryId, RArray<
+			TPosLmItemId>& aLandmarkIdArray,
+			CPosLmCategoryManager* aCategoryManager);
+	
+	void ImportL(TInt32 aTransactionId, CLandmarkHandler* aHandle, 
+			CPosLandmarkParser& aLandmarkParser);
+	
+	void ExportL(TInt32 aTransactionId, CPosLandmarkDatabase* aDatabase, 
+			CPosLandmarkEncoder& aLandmarkEncoder,
+			const RArray<TPosLmItemId>& aLandmarkIdArray,
+			const TDesC& aDestinationFile);
+
+	TInt32 TransactionId()
+		{
+		return iTransactionId;
+		}
+
+private:
+
+	/**
+	 * NextStep
+	 * This functions proceeds with the incremental search.
+	 */
+	void NextStep();
+
+private:
+	// From CActive
+
+	// RunL.
+	// This functions gets called after completion of async request.
+	void RunL();
+
+	// DoCancel.
+	// This function will cancel ongoing async call.
+	void DoCancel();
+	
+	TInt RunError(TInt aError);
+
+private:
+	// Constructors
+
+	/**
+	 * CLandmarkOperation.
+	 * C++ default constructor.
+	 * @param aObserver The pointer to the observer for this object.
+	 * @param aManageObjects The pointer to the garbage collector.
+	 */
+	CLandmarkOperation(MLandmarkObserver* aObserver,
+			CLandmarkManageObjects* aManageObjects);
+
+private:
+	/**
+	 * iTransactionId
+	 * The tranaction id assigned to aync request.
+	 */
+	TInt32 iTransactionId;
+
+	/**
+	 * iObserver
+	 * The handle to the MLandmarkObserver.
+	 */
+	MLandmarkObserver* iObserver;
+
+	/**
+	 * iOperation
+	 * The handle to the CPosLmOperation.
+	 */
+	CPosLmOperation* iOperation; //owned
+
+	/**
+	 * iManageObjects
+	 * The handle to the garbage collector.
+	 */
+	CLandmarkManageObjects* iManageObjects;
+
+	/**
+	 * iProgress
+	 * To keep track of search progress.
+	 */
+	TReal32 iProgress;
+	CLandmarkHandler* iHandle;
+	CPosLandmarkEncoder* iEncoder; //owned
+	CPosLandmarkParser* iParser;//owned
+	HBufC* iDestinationFile;
+	CBufBase* iExportBuffer; //owned
+	
+	TOperation iOperationType;
+
+	};
+
+#endif /* CLANDMARKCMDLINKCATEGORIES_H_ */