/****************************************************************
 *
 * 作   者：王建军
 * 时   间：2020/08/24
 * 开发语言：C++
 * 开发工具：QtCreator(Qt)
 * 文   件：global.h
 * 版   权：武汉创景可视技术有限公司
 *
 ***************************************************************/

#ifndef GLOBAL_H
#define GLOBAL_H

#include <QObject>
#include <QList>
#include <QMutex>

QString appName();
QString appVersion();

struct Param
{
    QString inputVisPath;
    QString convertFbxPath;
};

class Global
{
public:
    static Global* Instance();

    void setRootDirPath(const QString& path);
    QString rootDirPath();

    QString configDirPath();

    void setParam(Param p);
    Param param();
    void setInputVisPath(const QString& path);
    void setConvertFbxPath(const QString& path);

protected:
    Global();

private:
    /**
    *@brief 检查资源目录或者文件是否存在
    **/
    void checkResource();

    QString configFilePath();

private:
    static Global *mInstance;
    static QMutex mMutex;

    QString mRootPath;

    Param mParam;


    // GC类
    // 程序退出后，该类的析构函数释放单例内存
    class GC
    {
    public :
        ~GC()
        {
            if(mInstance != nullptr )
            {
                delete mInstance;
                mInstance = nullptr ;
            }
        }
    };

    static GC gc;
};




#endif // GLOBAL_H

