Belofte version 2.2.0
A promising chess program using the UCI or Winboard interface
util.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------+
2 * File: util.h
3 * Project: part of belofte - A Promising Chess Program
4 * Author: yves
5 * SPDX-License-Identifier: GPL-2.0-only
6+----------------------------------------------------------------------*/
7
8#if !defined(UTIL_H)
9#define UTIL_H
10
11/**
12 * Helper class for measuring execution time for functions
13 * Call ClockStart and ClockEnd at end of execution
14 * If getDuration is being called without ClockEnd, it will return
15 * elapsed time but continue counting
16 */
18public:
19 explicit TimedExecution();
20 virtual ~TimedExecution() = default;
21
22 std::string getDuration() const;
23 long long getDurationMicroSec() const;
24
25 static void sleep_ms(unsigned long ms);
26
27protected:
28 void ClockStart();
29 void ClockEnd();
30 long long getDurationSec() const;
31 long long getDurationMilliSec() const;
32
33private:
34 bool m_isEnded = false;
35#if defined(CHRONO_MISSING)
36 struct timeval execution_start;
37 struct timeval execution_end;
38#else
39 std::chrono::high_resolution_clock::time_point execution_start;
40 std::chrono::high_resolution_clock::time_point execution_end;
41#endif
42};
43
44//-----------------------------------------------------------------------
45
46namespace belofte {
47
48 typedef std::vector<std::string> stringList;
49
50 stringList const stringSplit(std::string src, std::string const& delim);
51 std::pair<std::string, std::string> decompose(std::string const& src,
52 std::string const& delim);
53 std::string to_string(int16_t value);
54 std::string to_string(int32_t value);
55 std::string to_string(int64_t value);
56 std::string alltrim(std::string s, std::string const& delim = " ");
57 bool is_number(std::string const& s);
58 int getRandomInt(int const nCeil);
59 int getRandomRange(int const nStart, int const nMax);
60 std::string getRCname(std::string const& basename);
61 int positionParamIndex(stringList const& param,
62 std::string const& find);
63 int positionParamValue(stringList const& param,
64 std::string const& find, unsigned long const nOffSet = 0);
65 std::string currentDate();
66 std::string prettyTime(long const nTime);
67}
68
69#endif // defined UTIL_H
70
71// eof
long long getDurationSec() const
Definition util.cpp:105
void ClockEnd()
Definition util.cpp:37
std::string getDuration() const
Definition util.cpp:47
TimedExecution()
implementation of timing functions
Definition util.cpp:17
long long getDurationMilliSec() const
Definition util.cpp:83
static void sleep_ms(unsigned long ms)
Class static function Pause execution for a number of ms.
Definition util.cpp:132
virtual ~TimedExecution()=default
void ClockStart()
Definition util.cpp:27
long long getDurationMicroSec() const
Definition util.cpp:61
Allow index mapper for char values of piece into int in 1-12 range to reduce space and easy initialis...
Definition eval.cpp:10
int getRandomRange(int const nStart, int const nMax)
Definition util.cpp:242
int positionParamValue(stringList const &param, std::string const &find, unsigned long const nOffSet=0)
Definition util.cpp:281
std::string alltrim(std::string s, std::string const &delim=" ")
trim left and right spaces or delim from string
Definition util.cpp:210
std::pair< std::string, std::string > decompose(std::string const &src, std::string const &delim)
Split delimited long string into a pair based on delimiter e.g.
Definition util.cpp:167
std::string to_string(int16_t value)
std::to_string not compatible on Mac OS (Apple LLVM version 5.0) provide generic utility function
Definition util.cpp:186
stringList const stringSplit(std::string src, std::string const &delim)
Split delimited long string into a vector.
Definition util.cpp:148
std::vector< std::string > stringList
Definition util.h:48
std::string currentDate()
Definition util.cpp:292
std::string prettyTime(long const nTime)
Definition util.cpp:302
std::string getRCname(std::string const &basename)
convert executable name into name.rc, possibly dropping .exe suffix
Definition util.cpp:258
bool is_number(std::string const &s)
Definition util.cpp:220
int getRandomInt(int const nCeil)
return random in between 0 and nCeil - 1
Definition util.cpp:229
int positionParamIndex(stringList const &param, std::string const &find)
find position in which param has been found
Definition util.cpp:274