12 const std::string& srm_path) {
13 if (srm_path.empty()) {
14 return absl::InvalidArgumentError(
"SRM path is empty");
17 std::ifstream file(srm_path, std::ios::binary);
18 if (!file.is_open()) {
19 return absl::NotFoundError(
20 absl::StrFormat(
"Cannot open SRM file: %s", srm_path));
23 file.seekg(0, std::ios::end);
24 const std::streampos end = file.tellg();
26 return absl::InternalError(
27 absl::StrFormat(
"Failed to read SRM file size: %s", srm_path));
30 std::vector<uint8_t> data(
static_cast<size_t>(end));
31 file.seekg(0, std::ios::beg);
33 file.read(
reinterpret_cast<char*
>(data.data()),
34 static_cast<std::streamsize
>(data.size()));
36 return absl::DataLossError(
37 absl::StrFormat(
"Failed to read SRM file: %s", srm_path));