MetricManager.h
libusermetricsinput/Metric.h
libusermetricsinput/Metric.h
MetricManager.h
libusermetricsinput/MetricUpdate.h
QtCore/QObject
QtCore/QScopedPointer
QtCore/QSharedPointer
UserMetricsInput::MetricParameters
UserMetricsInput::MetricManager
UserMetricsInput

    /*
    *Copyright(C)2013Canonical,Ltd.
    *
    *Thislibraryisfreesoftware;youcanredistributeitand/ormodifyitunder
    *thetermsofversion3oftheGNULesserGeneralPublicLicenseaspublished
    *bytheFreeSoftwareFoundation.
    *
    *Thislibraryisdistributedinthehopethatitwillbeuseful,butWITHOUT
    *ANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESS
    *FORAPARTICULARPURPOSE.SeetheGNULesserGeneralPublicLicenseformore
    *details.
    *
    *YoushouldhavereceivedacopyoftheGNULesserGeneralPublicLicense
    *alongwiththisprogram.Ifnot,see<http://www.gnu.org/licenses/>.
    *
    *Author:PeteWoods<pete.woods@canonical.com>
    */

    #ifndefUSERMETRICSINPUT_METRICMANAGER_H_
    #defineUSERMETRICSINPUT_METRICMANAGER_H_

    #include<libusermetricsinput/Metric.h>

    namespaceUserMetricsInput{

    classMetricManager;
    classMetricParametersPrivate;

    typedefQScopedPointer<MetricManager>MetricManagerPtr;

    classQ_DECL_EXPORTMetricParameters{
    public:

    explicitMetricParameters(constQString&dataSourceId);

    MetricParameters&formatString(constQString&formatString);

    MetricParameters&emptyDataString(constQString&emptyDataString);

    MetricParameters&textDomain(constQString&textDomain);

    MetricParameters&minimum(doubleminimum);

    MetricParameters&maximum(doublemaximum);

    MetricParameters&type(MetricTypetype);

    virtual~MetricParameters();

    QScopedPointer<MetricParametersPrivate>p;
    };

    classQ_DECL_EXPORTMetricManager:publicQObject{
    public:
    explicitMetricManager(QObject*parent=0);

    virtual~MetricManager();

    staticMetricManager*getInstance();

    virtualMetricPtradd(constQString&dataSourceId,
    constQString&formatString,constQString&emptyDataString="",
    constQString&textDomain="")=0;

    virtualMetricPtradd(constMetricParameters&parameters)=0;
    };

    }

    #endif//USERMETRICSINPUT_METRICMANAGER_H_