My Project
oslConfig.h
Go to the documentation of this file.
1/* oslConfig.h
2 */
3#ifndef OSL_OSLCONFIG_H
4#define OSL_OSLCONFIG_H
5
6#include "osl/config.h"
7#include <stdexcept>
8#include <string>
9#include <utility>
10#include <mutex>
11#include <functional>
12#include <cassert>
13#include <vector>
14
15namespace osl
16{
18 struct OslConfig
19 {
20 static const int MaxThreads=64;
22 static const std::string& home(const std::string& initialize_if_first_invocation="");
23 static const char * home_c_str();
24 static const std::string gpsusiConf();
25
27 static const std::string testPrivate();
28 static const std::string testPublic();
29 static const char *testPrivateFile(const std::string& filename);
30 static const char *testPublicFile(const std::string& filename);
31 static const char *testCsaFile(const std::string& filename);
32
37 static const char *openingBook(const std::string& filenamme="");
38
39 static void setVerbose(bool verbose);
40 static bool verbose();
41
42 static void showOslHome();
43 static void setNumCPUs(int ncpu);
44 static int concurrency();
45
46 static int dfpnMaxDepth();
47 static void setDfpnMaxDepth(int);
48
50 static UsiMode usiMode();
51 static void setUsiMode(UsiMode new_mode=PortableUSI);
52 static bool usiModeInSilent();
53 static void setUsiSilent(bool silent=true);
54
55 static bool searchExactValueInOneReply();
56 static void setSearchExactValueInOneReply(bool new_value);
57
58 static size_t residentMemoryUse();
59 static size_t memoryUseLimit()
60 {
61 return static_cast<size_t>(memory_use_limit * memory_use_percent / 100.0);
62 }
63 static void setMemoryUseLimit(size_t limit) { memory_use_limit = limit; }
64 static double memoryUseRatio()
65 {
66 return residentMemoryUse() * 1.0 / memoryUseLimit();
67 }
73 static void setMemoryUsePercent(double limit)
74 {
75 assert(limit > 0.0 && limit <= 100.0);
76 limit = std::max(0.01, limit);
77 limit = std::min(100.0, limit);
78 memory_use_percent = limit;
79 }
81 static unsigned int evalRandom() { return eval_random; }
82 static void setEvalRandom(unsigned int sigma) { eval_random = sigma; }
83
84 static void setUsiOutputPawnValue(int new_value) { usi_output_pawn_value = new_value; }
87 static int inUnitTest() { return in_unit_test; }
88 static bool inUnitTestShort() { return in_unit_test == 1; }
89 static bool inUnitTestLong() { return in_unit_test == 2; }
90 static void setInUnitTest(int new_value) { in_unit_test = new_value; }
91
93 static void setUp();
94 static bool hasByoyomi();
95 static void setHasByoyomi(bool);
96
97 static bool healthCheck();
98 static int resignThreshold();
99 static std::string configuration();
100 private:
101 static const std::string makeHome(const std::string& first_try="");
102 static const std::string makeTest();
103 static const std::string makeTestPublic();
104 static bool isGoodDir(const std::string&);
105 static void trySetDir(std::string&, const std::string&);
106 static void showOslHome(const std::string&);
107 static size_t memory_use_limit;
108 static double memory_use_percent;
109 static const size_t memory_use_limit_system_max;
110 static unsigned int eval_random;
111 static bool is_verbose;
112 static const int default_ncpus;
113 static int num_cpu;
114 static volatile UsiMode usi_mode;
115 static volatile bool usi_mode_silent;
118 static volatile bool force_root_window;
120 static volatile int in_unit_test;
121 static int dfpn_max_depth;
122 public:
123 static std::mutex lock_io;
124 // designed to be called before main
125 static void registerInitializer(std::function<void()>);
126 };
128 {
129 SetUpRegister(std::function<void()> f) {
131 }
132 };
133 struct NoMoreMemory : std::runtime_error
134 {
135 NoMoreMemory() : std::runtime_error("memory exhausted")
136 {
137 }
138 };
139}
140
141#endif /* OSL_OSLCONFIG_H */
142// ;;; Local Variables:
143// ;;; mode:c++
144// ;;; c-basic-offset:2
145// ;;; End:
osl の実行環境に関する指定
Definition oslConfig.h:19
static std::mutex lock_io
Definition oslConfig.h:123
static bool is_verbose
Definition oslConfig.h:111
static void registerInitializer(std::function< void()>)
Definition oslConfig.cc:449
static void showOslHome()
Definition oslConfig.cc:191
static int concurrency()
Definition oslConfig.cc:133
static volatile int in_unit_test
Definition oslConfig.h:120
static int usi_output_pawn_value
Definition oslConfig.h:116
static int inUnitTest()
Definition oslConfig.h:87
static void trySetDir(std::string &, const std::string &)
Definition oslConfig.cc:202
static volatile int root_window_alpha
Definition oslConfig.h:119
static int resignThreshold()
Definition oslConfig.cc:267
static bool verbose()
Definition oslConfig.cc:145
static const std::string testPublic()
Definition oslConfig.cc:306
static void setUsiSilent(bool silent=true)
Definition oslConfig.cc:162
static const std::string gpsusiConf()
Definition oslConfig.cc:250
static volatile bool force_root_window
Definition oslConfig.h:118
static int dfpn_max_depth
Definition oslConfig.h:121
static void setUsiOutputPawnValue(int new_value)
Definition oslConfig.h:84
static double memory_use_percent
Definition oslConfig.h:108
static bool search_exact_value_in_one_reply
Definition oslConfig.h:117
static const char * home_c_str()
Definition oslConfig.cc:245
static bool healthCheck()
Definition oslConfig.cc:453
static unsigned int eval_random
Definition oslConfig.h:110
static void setMemoryUseLimit(size_t limit)
Definition oslConfig.h:63
static bool searchExactValueInOneReply()
Definition oslConfig.cc:166
static void setEvalRandom(unsigned int sigma)
Definition oslConfig.h:82
static size_t memoryUseLimit()
Definition oslConfig.h:59
static int dfpnMaxDepth()
Definition oslConfig.cc:491
static void setUsiMode(UsiMode new_mode=PortableUSI)
Definition oslConfig.cc:154
static const std::string makeHome(const std::string &first_try="")
Definition oslConfig.cc:213
static void setMemoryUsePercent(double limit)
Definition oslConfig.h:73
static const size_t memory_use_limit_system_max
Definition oslConfig.h:109
static bool isGoodDir(const std::string &)
Definition oslConfig.cc:196
static void setUp()
評価関数等を初期化.
Definition oslConfig.cc:438
static const char * openingBook(const std::string &filenamme="")
標準の定跡ファイルを返す
Definition oslConfig.cc:369
static void setNumCPUs(int ncpu)
Definition oslConfig.cc:124
static void setInUnitTest(int new_value)
Definition oslConfig.h:90
static size_t memory_use_limit
Definition oslConfig.h:107
static volatile UsiMode usi_mode
Definition oslConfig.h:114
static bool hasByoyomi()
Definition oslConfig.cc:175
static bool has_byoyomi
Definition oslConfig.h:117
static const int default_ncpus
Definition oslConfig.h:112
static std::string configuration()
Definition oslConfig.cc:500
static int usiOutputPawnValue()
Definition oslConfig.h:85
static const std::string makeTest()
Definition oslConfig.cc:274
static bool usiModeInSilent()
Definition oslConfig.cc:158
static void setHasByoyomi(bool)
Definition oslConfig.cc:180
static const std::string testPrivate()
テストケースのデータ
Definition oslConfig.cc:300
static bool isMemoryLimitEffective()
Definition oslConfig.h:68
static int num_cpu
Definition oslConfig.h:113
static void setSearchExactValueInOneReply(bool new_value)
Definition oslConfig.cc:170
static const std::string makeTestPublic()
Definition oslConfig.cc:287
static volatile int root_window_beta
Definition oslConfig.h:119
static unsigned int evalRandom()
Definition oslConfig.h:81
static void setDfpnMaxDepth(int)
Definition oslConfig.cc:495
static const char * testCsaFile(const std::string &filename)
Definition oslConfig.cc:359
static const char * testPublicFile(const std::string &filename)
Definition oslConfig.cc:349
static void setVerbose(bool verbose)
Definition oslConfig.cc:140
static UsiMode usiMode()
Definition oslConfig.cc:150
static size_t residentMemoryUse()
Definition oslConfig.cc:388
static bool inUnitTestLong()
Definition oslConfig.h:89
static volatile bool usi_mode_silent
Definition oslConfig.h:115
static double memoryUseRatio()
Definition oslConfig.h:64
static const char * testPrivateFile(const std::string &filename)
Definition oslConfig.cc:339
static bool inUnitTestShort()
Definition oslConfig.h:88
static const std::string & home(const std::string &initialize_if_first_invocation="")
compile時に指定されたディレクトリを返す.
Definition oslConfig.cc:239
static const int MaxThreads
Definition oslConfig.h:20
SetUpRegister(std::function< void()> f)
Definition oslConfig.h:129