dmpapplication.h 1.9 KB
/**************************************************************************
* file:              dmpapplication.h

* Author:            wanzhongping
* Date:              2021-02-20 15:55:28
* Email:             zhongpingw@chinadci.com
* copyright:         广州城市信息研究所有限公司
***************************************************************************/

#ifndef __dmpapplication_h__
#define __dmpapplication_h__

#include "dmap_core.h"
#include <boost/filesystem.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/algorithm/string/trim_all.hpp> 
#include <string>

class CORE_EXPORT DmpApplication
{
public:
    ~DmpApplication();

    static DmpApplication* Instance();
    void initialize();
    //static bool CreateDatabase();
    std::string resolvePkgPath();
    std::string applicationDirPath();
    bool searchFile(const boost::filesystem::path &dir, const std::string fileName, boost::filesystem::path &path);
    bool isRunningFromBuildDir();
    static std::string dmapSettingsDirPath();
    
    std::string prefixPath();
    void setPrefixPath(const std::string &prefixPath);
    void setPluginPath(const std::string &pluginPath);
    void setPkgDataPath( const std::string &pkgDataPath);
    
    std::string libexecPath();
    std::string pluginPath();
    std::string pkgDataPath();
    std::string libraryPath();
    std::string buildOutputPath();

    void createIniFile(const std::string &filePath);
    
private:
    DmpApplication();

    std::string prefixPath_;
    std::string libexecPath_;
    std::string libraryPath_;
    std::string pluginPath_;
    std::string buildSourcePath_;
    std::string buildOutputPath_;
    std::string pkgDataPath_;
    bool runningFromBuildDir_;
    bool initialized_;
    const std::string iniFileName_ = "dmap.ini";
};

#endif //__dmpapplication_h__