Metric.h
libusermetricsinput/MetricUpdate.h
QtCore/QSharedPointer
MetricManager.h
Metric.h
libusermetricsinput/MetricUpdate.h
QtCore/QObject
QtCore/QScopedPointer
QtCore/QSharedPointer
Metric.h
MetricManager.h
UserMetricsInput::Metric
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_METRIC_H_
    #defineUSERMETRICSINPUT_METRIC_H_

    #include<libusermetricsinput/MetricUpdate.h>
    #include<QtCore/QSharedPointer>

    namespaceUserMetricsInput{

    classMetric;

    typedefQSharedPointer<Metric>MetricPtr;

    enumMetricType{
    USER,SYSTEM,
    };

    classQ_DECL_EXPORTMetric:publicQObject{
    public:
    explicitMetric(QObject*parent=0);

    virtual~Metric();

    virtualMetricUpdate*update(constQString&username="")=0;

    virtualvoidupdate(doublevalue,constQString&username="")=0;

    virtualvoidincrement(doubleamount=1.0f,
    constQString&username="")=0;
    };

    }

    #endif//USERMETRICSINPUT_METRIC_H_