37
37
return (gu::serial_size4(ws.keys_) + gu::serial_size4(ws.data_));
40
std::pair<size_t, size_t>
41
galera::WriteSet::segment(const gu::byte_t* buf, size_t buf_len, size_t offset)
44
offset = gu::unserialize4(buf, buf_len, offset, data_len);
45
if (offset + data_len > buf_len) gu_throw_error(EMSGSIZE);
46
return std::pair<size_t, size_t>(offset, data_len);
49
size_t galera::WriteSet::keys(const gu::byte_t* buf,
50
size_t buf_len, size_t offset, int version,
53
std::pair<size_t, size_t> seg(segment(buf, buf_len, offset));
55
const size_t seg_end(seg.first + seg.second);
56
assert(seg_end <= buf_len);
58
while (offset < seg_end)
61
if ((offset = unserialize(buf, buf_len, offset, key)) == 0)
63
gu_throw_fatal << "failed to unserialize key";
67
assert(offset == seg_end);
41
71
void galera::WriteSet::append_key(const Key& key)