cmmanager/cmapplsettingsui/inc/cmsettingdata.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:53:07 +0300
changeset 20 9c97ad6591ae
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* 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:
* Data handling encapsulation for CM Application Settings UI.
*
*/

#ifndef CMSETTINGDATA_H
#define CMSETTINGDATA_H

// System includes
#include <QString>
#include <QFlags>
#include <QSet>
#include <QList>
#include <QSharedPointer>
#include <cmmanager_shim.h>
#include <cmconnectionmethod_shim.h>
#include <cmdestination_shim.h>

// User includes

// Forward declarations

// External data types

// Constants

// Class declaration

class CmSettingData
{

public:

    // Data types

    // Data class for Destination
    class Destination
    {
    public:
        int id;         //!< Destination ID.
        QString name;   //!< Destination name.
    };

    // Data class for Connection Method
    class ConnMethod
    {
    public:
        int id;         //!< Connection Method ID.
        QString name;   //!< Connection Method name.
    };

    explicit CmSettingData();
    
    ~CmSettingData();
    
    void setBearerFilter(const QSet<uint> &bearers);
    
    bool fetchDestinations(QList< QSharedPointer<Destination> > &destinations);

    bool fetchConnMethods(QList< QSharedPointer<ConnMethod> > &connMethods);

signals:

public slots:

protected:

protected slots:

private:

    void getCmManager();

    bool validateDestination(CmDestinationShim *destination) const;
    
    bool validateConnMethod(CmConnectionMethodShim *connMethod) const;

    static bool connMethodLessThan(
        const QSharedPointer<ConnMethod> connMethod1,
        const QSharedPointer<ConnMethod> connMethod2);
    
private slots:

private: // data

    QSet<uint> mBearers;                        //!< Bearer filter.
    QSharedPointer<CmManagerShim> mCmManager;   //!< CM Manager client instance

    // Friend classes
};

#endif // CMSETTINGDATA_H