diff -r 000000000000 -r 4e91876724a2 photosgallery/collectionframework/datasource/manager/inc/mglxdatasource.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/photosgallery/collectionframework/datasource/manager/inc/mglxdatasource.h Thu Dec 17 08:45:44 2009 +0200 @@ -0,0 +1,85 @@ +/* +* 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: Definition of the Data Source Mixin Class. +* +*/ + + + + +#ifndef _MGLXDATASOURCE_H_ +#define _MGLXDATASOURCE_H_ + +// INCLUDES +#include +#include "mglxdatasourceupdateobserver.h" +#include "mglxdatasourcerequestobserver.h" + +// FORWARD DECLARATIONS +class CGlxRequest; + +// CONSTANTS + +// CLASS DECLARATION + +/** + * MGlxDataSource class + * + * Data Source collates Data Source information. + * @lib GlxDataSource.lib + * @ingroup collection_component_design + * @internal reviewed 11/07/2007 by Dave Schofield + */ +class MGlxDataSource + { +public: + /** + * Asynchronous call to retrieve + * + * @param aListId list for this query relates to + * @return error code + */ + virtual void DataSourceRequestL(CGlxRequest* aRequest, MGlxDataSourceRequestObserver& aObserver) = 0; + /** + * Cancel asynchronous request call + * as each requestor can only have one active request the observer is sufficient to cancel the request. + * + */ + virtual void CancelRequest(MGlxDataSourceRequestObserver& aObserver) = 0; +public: + + /** + * Since there should be only one data source manager for a server, + * clients can use this function to either create the instance or + * return the pointer if the instance already exists. + * + * The pointers are reference counter, and the instance is deleted after + * there are no more clients. It is, therefore, necessary + * to release the instance by calling Close() when no longer needed. + * + * @returns a pointer to a new or existing list manager instance + */ + IMPORT_C static MGlxDataSource* OpenDataSourceL(const TUid& aDataSource, MGlxDataSourceUpdateObserver& aObserver); + + + /** + * Decrements the reference count of the data source manager. Deletes the + * data source manager if there are no more references. + */ + virtual void Close(MGlxDataSourceUpdateObserver& aObserver)=0; + }; + + + +#endif //_MGLXDATASOURCE_H_ \ No newline at end of file