camerauis/cameraxui/cxengine/inc/cxesettingsstore.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:03:46 +0300
branchRCL_3
changeset 23 61bc0f252b2b
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2010 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:
*
*/
#ifndef  CXESETTINGSSTORE_H_
#define  CXESETTINGSSTORE_H_

//  Include Files
#include <QHash>
#include <QVariant>
#include <QMetaType>
#include "cxeerror.h"
#include "cxenamespace.h"

/*!
* Settings store intrerface.
*/
class CxeSettingsStore
{
public:

    /*!
     * Destructor. Needs to be virtual.
    */
    virtual ~CxeSettingsStore() {};

    /*!
    * resets the cenrep store
    */
    virtual void reset() = 0;
    
    /*!
    * Reads a value from cenrep
    * \param "key"   - setting key
    * \param "value" - setting value read from cenrep
    */
	virtual CxeError::Id get(const QString &key, QVariant &value) = 0;

    /*!
    * Reads a value from the settings store and starts monitoring it.
    * \param "uid"   - UID of the component that own setting key
    * \param "key"   - setting key id
    * \param "type"  - type of setting key
    * \param "value" - setting value read from cenrep
    */
    virtual void startMonitoring(long int uid, unsigned long int key, Cxe::SettingKeyType type, QVariant &value) = 0;

   /*!
    * Sets a new value to cenrep
    * \param "key"   - setting key
    * \param "newValue" - new value set to the key in cenrep
    */
	virtual CxeError::Id set(const QString &key,const QVariant newValue) = 0;
	    
	/*!
    * Reads/loads all run-time variation settings values from cenrep
    * @param QList<QString> contains list of all runtime variation key ids which we use to load values from cenrep.
    * returns: QHash container, "contains" values associated with each key that are read from cenrep
    * NOTE: loading runtime variation settings should be done only ONCE at start-up. Its an overhead to read variation keys
    *       unnecessarily multiple times as the values of the runtime keys are not changed.
    *       Variation keys are only used to configure camerax application.
    */
	virtual QHash<QString, QVariantList> loadVariationSettings(QList<QString> &settingKeys) = 0;
};


#endif  // CXESETTINGSSTORE_H_