57 static bool ReadParamsFile(
const char* file,
66 static bool SetParam(
const char* name,
const char* value,
77 for (i = 0; i < global_vec.
size(); ++i) {
78 if (strcmp(global_vec[i]->name_str(), name) == 0)
return global_vec[i];
80 for (i = 0; i < member_vec.
size(); ++i) {
81 if (strcmp(member_vec[i]->name_str(), name) == 0)
return member_vec[i];
88 for (
int i = 0; i < vec->
size(); ++i) {
89 if ((*vec)[i] == param_ptr) {
97 static bool GetParamAsString(
const char* name,
102 static void PrintParams(FILE* fp,
const ParamsVectors* member_params);
122 !this->is_debug()) ||
127 Param(
const char* name,
const char* comment,
bool init)
128 : name_(name), info_(comment), init_(init) {
129 debug_ = (strstr(name,
"debug") !=
nullptr) || (strstr(name,
"display"));
140 IntParam(int32_t value,
const char* name,
const char* comment,
bool init,
142 :
Param(name, comment, init) {
148 ~IntParam() { ParamUtils::RemoveParam<IntParam>(
this, params_vec_); }
149 operator int32_t()
const {
return value_; }
154 for (
int i = 0; i < vec->
int_params.size(); ++i) {
155 if (strcmp(vec->
int_params[i]->name_str(), name_) == 0) {
173 BoolParam(
bool value,
const char* name,
const char* comment,
bool init,
175 :
Param(name, comment, init) {
181 ~BoolParam() { ParamUtils::RemoveParam<BoolParam>(
this, params_vec_); }
182 operator bool()
const {
return value_; }
187 for (
int i = 0; i < vec->
bool_params.size(); ++i) {
188 if (strcmp(vec->
bool_params[i]->name_str(), name_) == 0) {
206 StringParam(
const char* value,
const char* name,
const char* comment,
208 :
Param(name, comment, init) {
214 ~StringParam() { ParamUtils::RemoveParam<StringParam>(
this, params_vec_); }
216 const char*
string()
const {
return value_.string(); }
217 const char*
c_str()
const {
return value_.string(); }
218 bool empty() {
return value_.length() <= 0; }
243 DoubleParam(
double value,
const char* name,
const char* comment,
bool init,
245 :
Param(name, comment, init) {
251 ~DoubleParam() { ParamUtils::RemoveParam<DoubleParam>(
this, params_vec_); }
252 operator double()
const {
return value_; }
295 #define INT_VAR_H(name, val, comment) tesseract::IntParam name 297 #define BOOL_VAR_H(name, val, comment) tesseract::BoolParam name 299 #define STRING_VAR_H(name, val, comment) tesseract::StringParam name 301 #define double_VAR_H(name, val, comment) tesseract::DoubleParam name 303 #define INT_VAR(name, val, comment) \ 304 tesseract::IntParam name(val, #name, comment, false, GlobalParams()) 306 #define BOOL_VAR(name, val, comment) \ 307 tesseract::BoolParam name(val, #name, comment, false, GlobalParams()) 309 #define STRING_VAR(name, val, comment) \ 310 tesseract::StringParam name(val, #name, comment, false, GlobalParams()) 312 #define double_VAR(name, val, comment) \ 313 tesseract::DoubleParam name(val, #name, comment, false, GlobalParams()) 315 #define INT_MEMBER(name, val, comment, vec) \ 316 name(val, #name, comment, false, vec) 318 #define BOOL_MEMBER(name, val, comment, vec) \ 319 name(val, #name, comment, false, vec) 321 #define STRING_MEMBER(name, val, comment, vec) \ 322 name(val, #name, comment, false, vec) 324 #define double_MEMBER(name, val, comment, vec) \ 325 name(val, #name, comment, false, vec) 327 #define INT_INIT_MEMBER(name, val, comment, vec) \ 328 name(val, #name, comment, true, vec) 330 #define BOOL_INIT_MEMBER(name, val, comment, vec) \ 331 name(val, #name, comment, true, vec) 333 #define STRING_INIT_MEMBER(name, val, comment, vec) \ 334 name(val, #name, comment, true, vec) 336 #define double_INIT_MEMBER(name, val, comment, vec) \ 337 name(val, #name, comment, true, vec) const char * c_str() const
void set_value(bool value)
void set_value(int32_t value)
IntParam(int32_t value, const char *name, const char *comment, bool init, ParamsVectors *vec)
BoolParam(bool value, const char *name, const char *comment, bool init, ParamsVectors *vec)
void operator=(int32_t value)
Param(const char *name, const char *comment, bool init)
GenericVector< IntParam * > int_params
StringParam(const char *value, const char *name, const char *comment, bool init, ParamsVectors *vec)
void operator=(double value)
void ResetFrom(const ParamsVectors *vec)
void set_value(const STRING &value)
void operator=(bool value)
void ResetFrom(const ParamsVectors *vec)
void ResetFrom(const ParamsVectors *vec)
static T * FindParam(const char *name, const GenericVector< T * > &global_vec, const GenericVector< T * > &member_vec)
GenericVector< BoolParam * > bool_params
static void RemoveParam(T *param_ptr, GenericVector< T * > *vec)
bool operator==(const STRING &other)
void ResetFrom(const ParamsVectors *vec)
void set_value(double value)
const char * info_str() const
tesseract::ParamsVectors * GlobalParams()
void operator=(const STRING &value)
const char * name_str() const
DoubleParam(double value, const char *name, const char *comment, bool init, ParamsVectors *vec)
const char * string() const
GenericVector< StringParam * > string_params
GenericVector< DoubleParam * > double_params
bool constraint_ok(SetParamConstraint constraint) const