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 
15 namespace 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  }
68  static bool isMemoryLimitEffective()
69  {
71  && residentMemoryUse() > 0;
72  }
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; }
85  static int usiOutputPawnValue() { return usi_output_pawn_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;
119  static volatile int root_window_alpha, root_window_beta;
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::OslConfig::testCsaFile
static const char * testCsaFile(const std::string &filename)
Definition: oslConfig.cc:359
osl::OslConfig::memory_use_limit_system_max
static const size_t memory_use_limit_system_max
Definition: oslConfig.h:109
osl::OslConfig::num_cpu
static int num_cpu
Definition: oslConfig.h:113
osl::OslConfig::root_window_beta
static volatile int root_window_beta
Definition: oslConfig.h:119
osl::OslConfig::inUnitTestLong
static bool inUnitTestLong()
Definition: oslConfig.h:89
osl::OslConfig::is_verbose
static bool is_verbose
Definition: oslConfig.h:111
osl::OslConfig::setDfpnMaxDepth
static void setDfpnMaxDepth(int)
Definition: oslConfig.cc:495
osl::eval::min
int min(Player p, int v1, int v2)
Definition: evalTraits.h:92
osl::OslConfig::trySetDir
static void trySetDir(std::string &, const std::string &)
Definition: oslConfig.cc:202
osl::OslConfig::UsiMode
UsiMode
Definition: oslConfig.h:49
osl::OslConfig::testPrivate
static const std::string testPrivate()
テストケースのデータ
Definition: oslConfig.cc:300
osl::OslConfig::memory_use_limit
static size_t memory_use_limit
Definition: oslConfig.h:107
osl::OslConfig::memoryUseRatio
static double memoryUseRatio()
Definition: oslConfig.h:64
osl::OslConfig::setMemoryUsePercent
static void setMemoryUsePercent(double limit)
Definition: oslConfig.h:73
osl::SetUpRegister
Definition: oslConfig.h:128
osl::OslConfig::usi_mode_silent
static volatile bool usi_mode_silent
Definition: oslConfig.h:115
osl::OslConfig::setUsiOutputPawnValue
static void setUsiOutputPawnValue(int new_value)
Definition: oslConfig.h:84
osl::OslConfig::testPrivateFile
static const char * testPrivateFile(const std::string &filename)
Definition: oslConfig.cc:339
osl::OslConfig::setUsiMode
static void setUsiMode(UsiMode new_mode=PortableUSI)
Definition: oslConfig.cc:154
osl::OslConfig::inUnitTest
static int inUnitTest()
Definition: oslConfig.h:87
osl::OslConfig::showOslHome
static void showOslHome()
Definition: oslConfig.cc:191
osl::NoMoreMemory
Definition: oslConfig.h:134
osl::NoMoreMemory::NoMoreMemory
NoMoreMemory()
Definition: oslConfig.h:135
osl::OslConfig::makeHome
static const std::string makeHome(const std::string &first_try="")
Definition: oslConfig.cc:213
osl::OslConfig::in_unit_test
static volatile int in_unit_test
Definition: oslConfig.h:120
osl::OslConfig::isGoodDir
static bool isGoodDir(const std::string &)
Definition: oslConfig.cc:196
osl::OslConfig::makeTestPublic
static const std::string makeTestPublic()
Definition: oslConfig.cc:287
osl::OslConfig::dfpnMaxDepth
static int dfpnMaxDepth()
Definition: oslConfig.cc:491
osl::OslConfig::memory_use_percent
static double memory_use_percent
Definition: oslConfig.h:108
osl::OslConfig::residentMemoryUse
static size_t residentMemoryUse()
Definition: oslConfig.cc:388
osl::OslConfig::NoUSI
@ NoUSI
Definition: oslConfig.h:49
osl::OslConfig::evalRandom
static unsigned int evalRandom()
Definition: oslConfig.h:81
osl::OslConfig::setUp
static void setUp()
評価関数等を初期化.
Definition: oslConfig.cc:438
osl::OslConfig::verbose
static bool verbose()
Definition: oslConfig.cc:145
osl::OslConfig::configuration
static std::string configuration()
Definition: oslConfig.cc:500
osl::OslConfig::lock_io
static std::mutex lock_io
Definition: oslConfig.h:123
osl::OslConfig::force_root_window
static volatile bool force_root_window
Definition: oslConfig.h:118
osl::eval::max
int max(Player p, int v1, int v2)
Definition: evalTraits.h:84
osl::OslConfig::default_ncpus
static const int default_ncpus
Definition: oslConfig.h:112
osl::OslConfig::setMemoryUseLimit
static void setMemoryUseLimit(size_t limit)
Definition: oslConfig.h:63
osl::OslConfig::setVerbose
static void setVerbose(bool verbose)
Definition: oslConfig.cc:140
osl::OslConfig::PortableUSI
@ PortableUSI
Definition: oslConfig.h:49
osl::OslConfig::testPublicFile
static const char * testPublicFile(const std::string &filename)
Definition: oslConfig.cc:349
osl::OslConfig::setSearchExactValueInOneReply
static void setSearchExactValueInOneReply(bool new_value)
Definition: oslConfig.cc:170
osl::OslConfig::hasByoyomi
static bool hasByoyomi()
Definition: oslConfig.cc:175
osl::OslConfig::dfpn_max_depth
static int dfpn_max_depth
Definition: oslConfig.h:121
osl::OslConfig::usi_mode
static volatile UsiMode usi_mode
Definition: oslConfig.h:114
osl::OslConfig::setUsiSilent
static void setUsiSilent(bool silent=true)
Definition: oslConfig.cc:162
osl::OslConfig::resignThreshold
static int resignThreshold()
Definition: oslConfig.cc:267
osl::OslConfig::concurrency
static int concurrency()
Definition: oslConfig.cc:133
osl::OslConfig::ExtendedUSI
@ ExtendedUSI
Definition: oslConfig.h:49
osl::OslConfig::has_byoyomi
static bool has_byoyomi
Definition: oslConfig.h:117
osl::OslConfig::isMemoryLimitEffective
static bool isMemoryLimitEffective()
Definition: oslConfig.h:68
osl::OslConfig::usiOutputPawnValue
static int usiOutputPawnValue()
Definition: oslConfig.h:85
osl::OslConfig::home
static const std::string & home(const std::string &initialize_if_first_invocation="")
compile時に指定されたディレクトリを返す.
Definition: oslConfig.cc:239
osl::OslConfig::search_exact_value_in_one_reply
static bool search_exact_value_in_one_reply
Definition: oslConfig.h:117
osl::OslConfig::memoryUseLimit
static size_t memoryUseLimit()
Definition: oslConfig.h:59
osl::OslConfig::setHasByoyomi
static void setHasByoyomi(bool)
Definition: oslConfig.cc:180
osl::OslConfig::inUnitTestShort
static bool inUnitTestShort()
Definition: oslConfig.h:88
osl::OslConfig::usiModeInSilent
static bool usiModeInSilent()
Definition: oslConfig.cc:158
osl::OslConfig::searchExactValueInOneReply
static bool searchExactValueInOneReply()
Definition: oslConfig.cc:166
osl::SetUpRegister::SetUpRegister
SetUpRegister(std::function< void()> f)
Definition: oslConfig.h:129
osl::OslConfig::setNumCPUs
static void setNumCPUs(int ncpu)
Definition: oslConfig.cc:124
osl::OslConfig::registerInitializer
static void registerInitializer(std::function< void()>)
Definition: oslConfig.cc:449
osl::OslConfig::healthCheck
static bool healthCheck()
Definition: oslConfig.cc:453
osl::OslConfig::testPublic
static const std::string testPublic()
Definition: oslConfig.cc:306
std
Definition: basic_type.h:1353
osl::OslConfig::eval_random
static unsigned int eval_random
Definition: oslConfig.h:110
osl::OslConfig::home_c_str
static const char * home_c_str()
Definition: oslConfig.cc:245
config.h
osl::OslConfig::openingBook
static const char * openingBook(const std::string &filenamme="")
標準の定跡ファイルを返す
Definition: oslConfig.cc:369
osl::OslConfig::usiMode
static UsiMode usiMode()
Definition: oslConfig.cc:150
osl::OslConfig::gpsusiConf
static const std::string gpsusiConf()
Definition: oslConfig.cc:250
osl::OslConfig::setInUnitTest
static void setInUnitTest(int new_value)
Definition: oslConfig.h:90
osl::OslConfig::usi_output_pawn_value
static int usi_output_pawn_value
Definition: oslConfig.h:116
osl::OslConfig::root_window_alpha
static volatile int root_window_alpha
Definition: oslConfig.h:119
osl::OslConfig
osl の実行環境に関する指定
Definition: oslConfig.h:19
osl::OslConfig::setEvalRandom
static void setEvalRandom(unsigned int sigma)
Definition: oslConfig.h:82
osl
Definition: additionalEffect.h:6
osl::OslConfig::MaxThreads
static const int MaxThreads
Definition: oslConfig.h:20
osl::OslConfig::makeTest
static const std::string makeTest()
Definition: oslConfig.cc:274