#ifndef FMTOOLS_H
#define FMTOOLS_H

#include <QStringList>
#include <QSettings>
#include <QCoreApplication>
#include <QUrl>

class FmTools
{
public:
    static FmTools& GetInstance();

    /* 功能:获取要守护的程序列表
     * 参数:NULL
     * 返回:程序列表(带相对路径)
     * */
    QStringList GetKeepExes();
    /* 功能:获取软件版本信息
     * 参数:NULL
     * 返回:软件版本
     * */
    QString GetVersion();
    /* 功能:获取合作商户ID
     * 参数:NULL
     * 返回:合作商户ID
     * */
    QString GetPartnerId();
    /* 功能:获取下载文件超时时间
     * 参数:NULL
     * 返回:超时时间
     * */
    int GetDownloadTimeout();
    /* 功能:获取请求数据超时时间
     * 参数:NULL
     * 返回:超时时间
     * */
    int GetRequestTimeout();
    /* 功能:获取检测升级的URL
     * 参数:NULL
     * 返回:检测升级URL
     * */
    QString GetUpdateUrl();
    /* 功能:获取汇报升级结果的URL
     * 参数:NULL
     * 返回:回报结果URL
     * */
    QString GetReportUrl();
    /* 功能:获取检测升级的数据
     * 参数:NULL
     * 返回:检测升级的数据
     * */
    QByteArray GetUpdateData();
    /* 功能:获取汇报升级结果的数据
     * 参数:NULL
     * 返回:汇报升级结果的数据
     * */
    QByteArray GetReportData(QString planId="", QString msg="", QString state="");

private:
    FmTools();
    ~FmTools();
    FmTools(FmTools const&);
    FmTools& operator=(FmTools const&);

private:
    QSettings *m_config;

    QString m_partnerId;    // 商户编号
    QString m_siIniPath;    // 门店信息配置文件路径
    QString m_keyStoreId;   // 门店编号key
    QString m_keyPosId;     // POS编号key
};

#endif // FMTOOLS_H
