44 const std::string FileName;
46 static const char LockSuffix[];
52 static bool isLocked(
const std::string &Path) {
53 return OSUtil::isPathPresent(Path + LockSuffix);
100 static void writeBinaryDataToFile(
const std::string &FileName,
101 const std::vector<std::vector<char>> &Data);
106 static std::vector<std::vector<char>>
107 readBinaryDataFromFile(
const std::string &FileName);
113 static void writeSourceItem(
const std::string &FileName,
const device &Device,
116 const std::string &BuildOptionsString);
120 static bool isCacheItemSrcEqual(
const std::string &FileName,
124 const std::string &BuildOptionsString);
128 static bool isEnabled();
131 static std::string getRootDir();
134 static std::string getDeviceIDString(
const device &Device);
142 template <ConfigID Config>
143 static unsigned long getNumParam(
unsigned long Default) {
147 return std::stol(Value);
148 }
catch (std::exception
const &) {
150 std::to_string(Default));
156 static constexpr
unsigned long DEFAULT_MIN_DEVICE_IMAGE_SIZE = 0;
159 static constexpr
unsigned long DEFAULT_MAX_DEVICE_IMAGE_SIZE =
165 static std::string getCacheItemPath(
const device &Device,
168 const std::string &BuildOptionsString);
174 static std::vector<std::vector<char>>
177 const std::string &BuildOptionsString);
181 static void putItemToDisc(
const device &Device,
184 const std::string &BuildOptionsString,
188 static void trace(
const std::string &msg) {
191 std::cerr <<
"*** Code caching: " << msg << std::endl;