#pragma once

#include <QObject>
#include <QScopedPointer>
#include <QJsonObject>

#include "commonsystemdetector.h"

class LinuxSystemDetectorPrivate;
class LinuxSystemDetector : public CommonSystemDetector
{
    Q_OBJECT
public:
    explicit LinuxSystemDetector(QObject *parent = Q_NULLPTR);
    ~LinuxSystemDetector() Q_DECL_OVERRIDE;

    virtual QString macAddress() const Q_DECL_OVERRIDE;
    virtual void saveOSHistory() Q_DECL_OVERRIDE;
    QJsonArray getSoftwareInfo() Q_DECL_OVERRIDE;

public Q_SLOTS:
    virtual QSharedPointer<SystemInfo> fetchSystemInfo() Q_DECL_OVERRIDE;

private:
    QScopedPointer<LinuxSystemDetectorPrivate> dd_ptr;
    Q_DECLARE_PRIVATE_D(qGetPtrHelper(dd_ptr), LinuxSystemDetector)
};

