photosgallery/collectionframework/plugins/glxcollectionplugincamera/inc/glxcollectionplugincamera.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 21 Jun 2010 15:40:32 +0300
branchRCL_3
changeset 47 f9e827349359
parent 0 4e91876724a2
permissions -rw-r--r--
Revision: 201023 Kit: 2010125

/*
* 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:    This class browses file system
*
*/





#ifndef C_GLXCOLLECTIONPLUGINCAMERA_H
#define C_GLXCOLLECTIONPLUGINCAMERA_H

// INCLUDES
#include <e32cmn.h>
#include "glxcollectionpluginbase.h"

// FORWARD DECLARATIONS

// CONSTANTS

// CLASS DECLARATION

/**
 *  CGlxCollectionPluginCamera class 
 *
 *  Plug-in basically provides browsing.
 *	@ingroup collection_component_design
 */
NONSHARABLE_CLASS(CGlxCollectionPluginCamera) : public CGlxCollectionPluginBase
    {
public: // Constructors and destructor
    /**
    * Two-phased constructor
    *
    * @param aObs observer
    * @return object of constructed
    */
    static CGlxCollectionPluginCamera* NewL(TAny* aObs);

    /**
    * Destructor
    */
    ~CGlxCollectionPluginCamera();
    
private: 
    /**
    * Constructor
    * @param aObs MMPXCollectionPluginObserver instance
    */
    CGlxCollectionPluginCamera(MMPXCollectionPluginObserver* aObs);
    /**
    * 2nd stage Constructor
    */
    void ConstructL();
    
private:
	/**
	 * Checks to see if any additional attributes are required to construct required
	 * CPI specific attribute
	 *
	 * @param aCpiAttribute CPI specific attribute to be constructed later
	 * @param aAttributeArray modifiable list of attributes to be retrieved from data source
	 */	 
	void CpiAttributeAdditionalAttributesL(const TMPXAttribute& aCpiAttribute, RArray<TMPXAttribute>& aAttributeArray);     	

	/**
	 * Modifies the response to include all requested CPI specific attributes or Leaves.
	 *
	 * @param aResponse Data Source constructed response to which CPI specific attributes should be added (also contains any required data)
	 * @param aCpiAttributes list of CPI specific attributes to be constructed
	 */	 
	void HandleCpiAttributeResponseL(CMPXMedia* aResponse, TArray<TMPXAttribute> aCpiAttributes, TArray<TGlxMediaId> aMediaIds);
	TBool IsUpdateMessageIgnoredL(CMPXMessage& aMessage);
	
	TGlxFilterProperties DefaultFilter(TInt aLevel);
    };

#endif      // C_GLXCOLLECTIONPLUGINCAMERA_H