diff -r 000000000000 -r 4e91876724a2 photos_plat/controllers_collection_api/inc/glxcollectionmanager.h --- /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 +#include +#include + +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