--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/photos_plat/controllers_collection_api/inc/glxcollectionmanager.h Thu Dec 17 08:45:44 2009 +0200
@@ -0,0 +1,128 @@
+/*
+* 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 "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: Implementation of collection manager API for external use
+*
+*/
+
+
+
+
+#ifndef __C_GLXCOLLECTIONMANAGER_H__
+#define __C_GLXCOLLECTIONMANAGER_H__
+
+#include <e32base.h>
+#include <e32std.h>
+#include <mpxcollectionobserver.h>
+
+class CGlxCollectionInfo;
+class CGlxCollectionManagerImpl;
+
+
+/**
+ * Collection manager allows accessing and managing collections (only albums
+ * currently supported).
+ *
+ * Only one request may be issued at one time. Functions panic if two requests
+ * are issued at the same time
+ *
+ * The interface is intended to be used by non-MPX applications.
+ * Not intended to be used by Gallery internally, as there are more efficient
+ * and architecturally aligned means existing.
+ *
+ * @lib glxuiutilities.lib
+ */
+NONSHARABLE_CLASS( CGlxCollectionManager )
+ : public CBase
+ {
+public:
+ /**
+ * Special collections, for which id is not know by client
+ */
+ enum TCollection
+ {
+ /// Camera album
+ ECollectionCameraAlbum
+ };
+public:
+ /**
+ * Two-phase constructor
+ */
+ IMPORT_C static CGlxCollectionManager* NewL();
+
+ /**
+ * Destructor
+ */
+ IMPORT_C ~CGlxCollectionManager();
+
+ /**
+ * Adds a file to collection asynchronously.
+ * @param aUri URI of file to be added to collection
+ * @param aCollection Specific collection to which item should be added
+ * @param aRequestStatus Request status that will be signalled when
+ * request is complete or fails due to an error. aRequestStatus must
+ * be an iStatus member variable of an active object. Using
+ * User::WaitForRequest() will not work.
+ */
+ IMPORT_C void AddToCollectionL(const TDesC& aUri,
+ TCollection aCollection, TRequestStatus& aRequestStatus);
+
+ /**
+ * Adds a file to collection asynchronously.
+ * @param aUri URI of file to be added to collection
+ * @param aCollectionId MDS ID of collection (album, tag, etc.)
+ * @param aRequestStatus Request status that will be signalled when
+ * request is complete or fails due to an error. aRequestStatus must
+ * be an iStatus member variable of an active object. Using
+ * User::WaitForRequest() will not work.
+ */
+ IMPORT_C void AddToCollectionL(const TDesC& aUri,
+ TUint32 aCollectionId, TRequestStatus& aRequestStatus);
+
+ /**
+ * Retrieves collection info
+ * @param aInfo Contains the collection information upon return
+ * Must contain the collection id when called.
+ * Must not be deleted before aRequestStatus is signalled.
+ * @param aRequestStatus Request status that will be signalled when
+ * request is complete or fails due to an error. aRequestStatus must
+ * be an iStatus member variable of an active object. Using
+ * User::WaitForRequest() will not work.
+ */
+ IMPORT_C void CollectionInfoL(CGlxCollectionInfo& aInfo,
+ TRequestStatus& aRequestStatus);
+
+ /**
+ * Cancel an ongoing request
+ */
+ IMPORT_C void Cancel();
+
+private:
+ /**
+ * Default constructor.
+ */
+ CGlxCollectionManager();
+
+ /**
+ * Second-phase constructor
+ */
+ void ConstructL();
+
+private:
+ /**
+ * Internal implementation (owned).
+ */
+ CGlxCollectionManagerImpl* iImplementation;
+ };
+
+#endif // __C_GLXCOLLECTIONMANAGER_H__
\ No newline at end of file