sapi_landmarks/landmarksservice/inc/clandmarkmanagehandlers.h
changeset 0 14df0fbfcc4e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sapi_landmarks/landmarksservice/inc/clandmarkmanagehandlers.h	Mon Mar 30 12:51:10 2009 +0300
@@ -0,0 +1,216 @@
+/*
+* 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:  CLandmarkManageHandlers class
+ *
+*/
+
+
+#ifndef __CLANDMARKMANAGEHANDLERS_H__
+#define __CLANDMARKMANAGEHANDLERS_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <e32cmn.h>
+
+//FORWARD DECLARARTION
+class CPosLandmarkDatabase;
+class CPosLmCategoryManager;
+class CPosLandmarkSearch;
+class CLandmarkHandler;
+
+/**
+ * CLandmarkManageHandlers
+ * This class maintains a list of handles to different databases.
+ */
+// CLASS DECLARATION
+NONSHARABLE_CLASS(CLandmarkManageHandlers): public CBase
+	{
+public: // New methods
+
+	/**
+	 * NewL.
+	 * Two-phased constructor.
+	 * Create a CPosLmManageHandle object.	
+	 * @return A pointer to the newly created instance of CLandmarkManageHandlers.	
+	 */
+	static CLandmarkManageHandlers* NewL();
+
+	/**
+	 * ~CPosLmManageHandle
+	 * Destructor.
+	 */
+	~CLandmarkManageHandlers();
+
+public: // Functions to create, return and destroy handle
+
+	/**
+	 * CreateHandlerL
+	 * This creates and returns CLandmarkHandler instance.
+	 * @param aDatabaseUri The URI of the database to be opened.
+	 * @return A pointer to the newly created instance of CLandmarkHandler.
+	 */
+	CLandmarkHandler* CreateHandlerL( const TDesC& aDatabaseUri );
+
+	/**
+	 * GetHandlerL
+	 * This returns CLandmarkHandler instance.
+	 * @param aDatabaseUri The URI of the database to be opened.
+	 * @return A pointer to an existing instance of CLandmarkHandler.
+	 */
+	CLandmarkHandler* GetHandlerL( const TDesC& aDatabaseUri );
+
+	/**
+	 * CloseHandler
+	 * This destroys CLandmarkHandler instance.
+	 * @param aHandler The CLandmarkHandler instance to be destroyed.
+	 */
+	void CloseHandler( CLandmarkHandler* aHandler );
+
+	/**
+	 * SetDefaultHandler
+	 * This changes the default handle managed by this class.
+	 * @param aHandler The CLandmarkHandler instance to be set as default.
+	 */
+	void SetDefaultHandler( CLandmarkHandler* aHandler );
+
+private: // Constructors
+
+	/**
+	 * CLandmarkManageHandlers.
+	 * C++ default constructor.
+	 */
+	CLandmarkManageHandlers();
+
+private: // Data members
+
+	/**
+	 * iHandlers
+	 * Array of CLandmarkHandler instances to all open databases.
+	 */
+	RPointerArray <CLandmarkHandler> iHandlers;
+
+	/**
+	 * iDefaultHandler
+	 * CLandmarkHandler instance to the default database.
+	 */
+	CLandmarkHandler* iDefaultHandler;
+	};
+
+/**
+ * CLandmarkHandler
+ * This class maintains a handle to an open database as well as the CPosLmCategoryManager
+ * handle and CPosLandmarkSearch handle associated with the CPosLandmarkDatabase
+ * database.
+ */
+// CLASS DECLARATION
+NONSHARABLE_CLASS(CLandmarkHandler): public CBase
+	{
+public: // New methods
+
+	/**
+	 * CreateL.
+	 * Two-phased constructor.
+	 * Create a CLandmarkHandler object.
+	 * @param aDatabaseUri The URI of the database to be opened.
+	 * @return A pointer to the created instance of CLandmarkHandler.
+	 */
+	static CLandmarkHandler* CreateL( const TDesC& aDatabaseUri );
+
+	/**
+	 * ~CLandmarkHandler
+	 * Destructor.
+	 */
+	~CLandmarkHandler();
+
+public: // Functions to retrieve data members
+
+	/**
+	 * LandmarkDatabaseHandle.
+	 * @return The handle to CPosLandmarkDatabase instance.
+	 */
+	inline CPosLandmarkDatabase* LandmarkDatabaseHandle ();
+
+	/**
+	 * CategoryManagerHandle.
+	 * @return The handle to CPosLmCategoryManager instance.
+	 */
+	inline CPosLmCategoryManager* CategoryManagerHandle ();
+
+	/**
+	 * LandmarkSearchHandle.
+	 * @return The handle to CPosLandmarkSearch instance.
+	 */
+	inline CPosLandmarkSearch* LandmarkSearchHandle ();
+
+	/**
+	 * GetDatabaseUri.
+	 * @param aDatabaseUri The URI of the open CPosLandmarkDatabase.
+	 */
+	inline void GetDatabaseUri( TPtrC& aDatabaseUri ) const;
+
+	/**
+	 * InitL.
+	 * This initializes the CPosLandmarkDatabase if required.
+	 */
+	void InitL();
+
+private: // Constructors
+
+	/**
+	 * ConstructL
+	 * 2nd phase constructor.
+	 * Perform the second phase construction of a
+	 * CLandmarkHandler object.
+	 * @param aDatabaseUri The URI of the CPosLandmarkDatabase to be opened.
+	 */
+	void ConstructL(const TDesC& aDatabaseUri);
+
+	/**
+	 * CLandmarkHandler.
+	 * C++ default constructor.
+	 */
+	CLandmarkHandler();
+
+private: // Data members
+
+	/**
+	 * iDatabaseUri
+	 * The URI of the open CPosLandmarkDatabase.
+	 */
+	HBufC* iDatabaseUri;
+
+	/**
+	 * iLandmarkDatabaseHandle
+	 * The handle to the open CPosLandmarkDatabase.
+	 */
+	CPosLandmarkDatabase* iLandmarkDatabaseHandle;
+
+	/**
+	 * iLmCategoryManagerHandle
+	 * The handle to the CPosLmCategoryManager of the database.
+	 */
+	CPosLmCategoryManager* iLmCategoryManagerHandle;
+
+	/**
+	 * iLandmarkSearchHandle
+	 * The handle to the CPosLandmarkSearch of the database.
+	 */
+	CPosLandmarkSearch* iLandmarkSearchHandle;
+	};
+
+#include "clandmarkhandler.inl"
+
+#endif // __CLANDMARKMANAGEHANDLERS_H__
+
+// End of File