60 static bool ReadParamsFile(
const char *
file,
68 static bool SetParam(
const char *name,
const char *value,
SetParamConstraint constraint,
75 static T *
FindParam(
const char *name,
const std::vector<T *> &global_vec,
76 const std::vector<T *> &member_vec) {
77 for (
auto *param : global_vec) {
78 if (strcmp(param->name_str(), name) == 0) {
82 for (
auto *param : member_vec) {
83 if (strcmp(param->name_str(), name) == 0) {
91 static void RemoveParam(T *param_ptr, std::vector<T *> *vec) {
92 for (
auto it = vec->begin(); it != vec->end(); ++it) {
93 if (*it == param_ptr) {
101 static bool GetParamAsString(
const char *name,
const ParamsVectors *member_params,
105 static void PrintParams(FILE *fp,
const ParamsVectors *member_params);
136 Param(
const char *name,
const char *comment,
bool init)
138 debug_ = (strstr(name,
"debug") !=
nullptr) || (strstr(name,
"display"));
150 :
Param(name, comment, init) {
157 ParamUtils::RemoveParam<IntParam>(
this, params_vec_);
159 operator int32_t()
const {
173 if (strcmp(param->name_str(),
name_) == 0) {
186 std::vector<IntParam *> *params_vec_;
192 :
Param(name, comment, init) {
199 ParamUtils::RemoveParam<BoolParam>(
this, params_vec_);
201 operator bool()
const {
215 if (strcmp(param->name_str(),
name_) == 0) {
228 std::vector<BoolParam *> *params_vec_;
233 StringParam(
const char *value,
const char *name,
const char *comment,
bool init,
235 :
Param(name, comment, init) {
242 ParamUtils::RemoveParam<StringParam>(
this, params_vec_);
244 operator std::string &() {
248 return value_.c_str();
251 return value_.find(c) != std::string::npos;
254 return value_.empty();
257 return value_ == other;
270 if (strcmp(param->name_str(),
name_) == 0) {
281 std::string default_;
283 std::vector<StringParam *> *params_vec_;
289 :
Param(name, comment, init) {
296 ParamUtils::RemoveParam<DoubleParam>(
this, params_vec_);
298 operator double()
const {
312 if (strcmp(param->name_str(),
name_) == 0) {
325 std::vector<DoubleParam *> *params_vec_;
348#define INT_VAR_H(name) ::tesseract::IntParam name
350#define BOOL_VAR_H(name) ::tesseract::BoolParam name
352#define STRING_VAR_H(name) ::tesseract::StringParam name
354#define double_VAR_H(name) ::tesseract::DoubleParam name
356#define INT_VAR(name, val, comment) \
357 ::tesseract::IntParam name(val, #name, comment, false, ::tesseract::GlobalParams())
359#define BOOL_VAR(name, val, comment) \
360 ::tesseract::BoolParam name(val, #name, comment, false, ::tesseract::GlobalParams())
362#define STRING_VAR(name, val, comment) \
363 ::tesseract::StringParam name(val, #name, comment, false, ::tesseract::GlobalParams())
365#define double_VAR(name, val, comment) \
366 ::tesseract::DoubleParam name(val, #name, comment, false, ::tesseract::GlobalParams())
368#define INT_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
370#define BOOL_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
372#define STRING_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
374#define double_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
376#define INT_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
378#define BOOL_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
380#define STRING_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
382#define double_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
@ SET_PARAM_CONSTRAINT_NON_DEBUG_ONLY
@ SET_PARAM_CONSTRAINT_NONE
@ SET_PARAM_CONSTRAINT_NON_INIT_ONLY
@ SET_PARAM_CONSTRAINT_DEBUG_ONLY
tesseract::ParamsVectors * GlobalParams()
std::vector< BoolParam * > bool_params
std::vector< StringParam * > string_params
std::vector< IntParam * > int_params
std::vector< DoubleParam * > double_params
static void RemoveParam(T *param_ptr, std::vector< T * > *vec)
static T * FindParam(const char *name, const std::vector< T * > &global_vec, const std::vector< T * > &member_vec)
const char * name_str() const
Param(const char *name, const char *comment, bool init)
bool constraint_ok(SetParamConstraint constraint) const
const char * info_str() const
void ResetFrom(const ParamsVectors *vec)
void operator=(int32_t value)
IntParam(int32_t value, const char *name, const char *comment, bool init, ParamsVectors *vec)
void set_value(int32_t value)
void set_value(bool value)
void ResetFrom(const ParamsVectors *vec)
void operator=(bool value)
BoolParam(bool value, const char *name, const char *comment, bool init, ParamsVectors *vec)
StringParam(const char *value, const char *name, const char *comment, bool init, ParamsVectors *vec)
void set_value(const std::string &value)
void operator=(const std::string &value)
bool operator==(const std::string &other)
const char * c_str() const
bool contains(char c) const
void ResetFrom(const ParamsVectors *vec)
void operator=(double value)
void ResetFrom(const ParamsVectors *vec)
void set_value(double value)
DoubleParam(double value, const char *name, const char *comment, bool init, ParamsVectors *vec)