QuasarAppLib/params.h
2019-09-16 12:38:10 +03:00

120 lines
2.9 KiB
C++

/*
* Copyright (C) 2018-2019 QuasarApp.
* Distributed under the lgplv3 software license, see the accompanying
* Everyone is permitted to copy and distribute verbatim copies
* of this license document, but changing it is not allowed.
*/
#ifndef PARAMS_H
#define PARAMS_H
#include <QVariant>
#include "quasarapp_global.h"
namespace QuasarAppUtils {
/**
* @brief The Params class for parese app params
*/
enum VerboseLvl {
Debug = 0x0,
Error = 0x1,
Warning = 0x2,
Info = 0x3,
};
class QUASARAPPSHARED_EXPORT Params
{
private:
static QString timeString();
static QString lvlToString(VerboseLvl vLvl);
static bool writeLoginFile(const QString& log, VerboseLvl vLvl = VerboseLvl::Debug);
public:
Params() = delete;
/**
* @brief parseParams - parase input data of started application
* @param argc - count of arguments
* @param argv - arrat of arguments
* @return true if all arguments read else false
*/
static bool parseParams(int argc, const char *argv[]);
/**
* @brief parseParams - parase input data of started application
* @param params - arguments
* @return true if all arguments read else false
*/
static bool parseParams(const QStringList& paramsArray);
/**
* @brief getStrArg - get string value of key
* @param key
* @param def - default value
* @return string value of argument
*/
static QString getStrArg(const QString& key, const QString& def = "");
/**
* @brief getArg - get string value of key
* @param key
* @param def - default value
* @return string value of argument
*/
static QVariant getArg(const QString& key, const QVariant &def = {});
/**
* @brief setArg - set value of key
* @param key
*/
static void setArg(const QString& key, const QVariant& val);
/**
* @brief setArg - set boolean value of key
* @param key
* @param enable - new value of key
*/
static void setEnable(const QString& key, bool enable);
/**
* @brief isEndable - check if enable argument of key
* @param key
* @return true if argument enabled
*/
static bool isEndable(const QString& key);
/**
* @brief verboseLog - print text on console if the flag "vergose" is enabled
* @param log - printed text
*/
static void verboseLog(const QString& log, VerboseLvl vLvl = VerboseLvl::Debug);
/**
* @brief getparamsHelp
* @return help string of default params
*/
static QStringList getparamsHelp();
/**
* @brief showHelp - show all strings of help
* @param help
*/
static void showHelp(const QStringList& help);
/**
* @brief size
* @return size of all params array
*/
static int size();
/**
* @brief customParamasSize
* @return size of params entered in conosole
*/
static int customParamasSize();
};
}
#endif // PARAMS_H