29 FirmwareSegment(
const uint16_t& idx,
const uint32_t& addr,
const uint32_t&
size,
const std::vector<uint8_t>::const_iterator& begin,
const std::vector<uint8_t>::const_iterator& end)
52 const std::vector<uint8_t>
data;
63 virtual auto Read(
const std::string& fw) ->
void = 0;
68 virtual auto Write(
const std::string& fw) ->
void = 0;
73 virtual auto ToString() const->std::
string = 0;
103 auto
GetData() const -> const std::vector<uint8_t>&
113 std::vector<FirmwareSegment> ret;
123 data.begin() + r_offset,
124 data.begin() + r_offset + r.second
126 r_offset += r.second;
137 virtual auto AppendSegment(
const uint32_t& addr,
const std::vector<uint8_t>& new_data) ->
void
139 auto extra =
align != 0 ? new_data.size() %
align : 0;
140 auto new_size = new_data.size() + (extra > 0 ?
align - extra : 0);
141 data.reserve(
data.size() + new_size);
142 std::copy(new_data.begin(), new_data.end(), std::back_inserter(
data));
145 std::fill_n(std::back_inserter(
data),
align - extra, 0xff);