OpenLexocad  28.0
Utils.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Base/String.h>
4 #include <QJsonDocument>
5 #include <functional>
6 #include <map>
7 
8 class QWidget;
9 
10 namespace Geom
11 {
12 class Pnt;
13 }
14 
15 namespace Core
16 {
17 class LX_CORE_EXPORT Proj4Detail
18 {
19 public:
20  std::string id;
21  std::string desc;
22  std::string proj4;
23 };
24 
25 class LX_CORE_EXPORT Proj4
26 {
27 public:
28  std::string ccid;
29  std::string id;
30  std::map<std::string, Proj4Detail> proj4s;
31 };
32 
33 class LX_CORE_EXPORT Util
34 {
35 public:
36  static Base::String createTempName(const Base::String& dir, const Base::String& temp);
37  static void* getClassFromDLL(const Base::String& dllname, const Base::String& classname);
38  static void loadDLL(const Base::String& dllname);
39  static void removeDirectory(const Base::String& name);
40  static unsigned long long getDiskFreeSpaceOfDirectoryInMB(const Base::String& dir);
41  static unsigned long long getDiskFreeSpaceOfDirectoryInKB(const Base::String& dir);
42  static bool isMainThread();
43  static bool isBigEndian();
44 
46  static Base::String getAbsolutePath(const Base::String& aPath, const Base::String& aAbsModelPath);
47  static bool removeDirContent(const Base::String& aDirName);
48  static bool proj4Convert(const std::string& inProjection,
49  const std::string& outProjection,
50  const std::vector<Geom::Pnt>& inPoints,
51  std::vector<Geom::Pnt>& outPoints);
52 
53  static std::vector<Proj4> getProj4Converter();
54 
55  static void printCallStack(int maxFrames = 0);
56  static bool runApp(const QString& appPath, std::map<QString, QString> env, std::vector<QString> args);
57 
58 
59  static bool downloadFile(QString url, QString saveFilePath, QWidget* parent = 0, std::function<void(int, int)> callback = 0);
60  static bool unzip(QString zipFile, QString destDir);
61 
62  static auto getHttpResponse(QString url, QWidget* parent = 0) ->std::pair<QString, QJsonDocument>;
63 };
64 
65 } // namespace Core
Core::Proj4Detail::proj4
std::string proj4
Definition: Utils.h:22
Core::Proj4Detail::desc
std::string desc
Definition: Utils.h:21
Core::Util::getDiskFreeSpaceOfDirectoryInMB
static unsigned long long getDiskFreeSpaceOfDirectoryInMB(const Base::String &dir)
Core::Util::isMainThread
static bool isMainThread()
Core::Proj4Detail
Definition: Utils.h:18
Core::Proj4::id
std::string id
Definition: Utils.h:29
Core::Util::getAbsolutePath
static Base::String getAbsolutePath(const Base::String &aPath, const Base::String &aAbsModelPath)
Core::Util::downloadFile
static bool downloadFile(QString url, QString saveFilePath, QWidget *parent=0, std::function< void(int, int)> callback=0)
Core::Util::getClassFromDLL
static void * getClassFromDLL(const Base::String &dllname, const Base::String &classname)
Core::Util::printCallStack
static void printCallStack(int maxFrames=0)
Core::Util::createTempName
static Base::String createTempName(const Base::String &dir, const Base::String &temp)
Core::Util::runApp
static bool runApp(const QString &appPath, std::map< QString, QString > env, std::vector< QString > args)
Core::Proj4
Definition: Utils.h:26
Core::Util::getDiskFreeSpaceOfDirectoryInKB
static unsigned long long getDiskFreeSpaceOfDirectoryInKB(const Base::String &dir)
Core::Util::getProj4Converter
static std::vector< Proj4 > getProj4Converter()
Core
Definition: Base.h:5
Core::Util
Definition: Utils.h:34
Core::Proj4::proj4s
std::map< std::string, Proj4Detail > proj4s
Definition: Utils.h:30
Core::Util::proj4Convert
static bool proj4Convert(const std::string &inProjection, const std::string &outProjection, const std::vector< Geom::Pnt > &inPoints, std::vector< Geom::Pnt > &outPoints)
Core::Util::isBigEndian
static bool isBigEndian()
Core::Proj4Detail::id
std::string id
Definition: Utils.h:20
String.h
Core::Util::loadDLL
static void loadDLL(const Base::String &dllname)
Core::Util::removeDirectory
static void removeDirectory(const Base::String &name)
Core::Util::getHttpResponse
static auto getHttpResponse(QString url, QWidget *parent=0) -> std::pair< QString, QJsonDocument >
Base::String
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:18
Core::Proj4::ccid
std::string ccid
Definition: Utils.h:28
Core::Util::removeDirContent
static bool removeDirContent(const Base::String &aDirName)
Core::Util::getDirectoryFromPath
static Base::String getDirectoryFromPath(const Base::String &aFilePath)
Geom
Definition: PropertyContainer.h:33
Core::Util::unzip
static bool unzip(QString zipFile, QString destDir)