19 inline auto write_to_file(std::ofstream& output_file,
const T& data)
21 const auto write_size =
sizeof(T);
23 output_file.write(
reinterpret_cast<const char*
>(&data),
static_cast<std::streamsize
>(write_size));
29 inline auto write_to_file(std::ofstream& output_file,
const std::vector<T>& data)
31 const auto write_size =
sizeof(T) * data.size();
33 output_file.write(
reinterpret_cast<const char*
>(data.data()),
static_cast<std::streamsize
>(write_size));
39 auto Binary::fill_entrypoint_to_buffer(BufferPoint buffer_point,
bool has_check_value) ->
bool
41 if ((not has_check_value) or buffer_point.second != 0)
43 data_buffer_.first.push_back(buffer_point.first);
44 data_buffer_.second.push_back(buffer_point.second);
55 output_file_.open(
config_.out_filename, std::ios::binary | std::ios::out | std::ios::trunc);
74 auto written_size = write_to_binary();
79 auto Binary::write_to_binary() -> std::size_t
81 assert(data_buffer_.first.size() == data_buffer_.second.size());
82 const auto data_size =
static_cast<uint32_t
>((data_buffer_.first.size()) + (data_buffer_.second.size()));
83 auto total_written_size = std::size_t{ 0 };
84 total_written_size += write_to_file(output_file_, data_size);
85 total_written_size += write_to_file(output_file_, data_buffer_.second);
86 total_written_size += write_to_file(output_file_, data_buffer_.first);
87 return total_written_size;
90 void Binary::resize_data_buffer(std::size_t size)
106 auto Binary::check_buffer_size(std::size_t size_to_add)
const ->
bool
108 return data_buffer_.first.size() + size_to_add < config_.max_bufferpoint_size;