|
|
@ -290,7 +290,7 @@ struct vlog_handler * VlogSet::get_vlog_handler(size_t vlog_num) { |
|
|
|
return vlog_handler_map_[get_vlog_name(vlog_num)]; |
|
|
|
} |
|
|
|
|
|
|
|
// value: | field_nums(uint16_t) | slot_num(size_t) | value |
|
|
|
|
// value: | value_size(uint16_t) | slot_num(size_t) | field_nums(uint16_t) | value |
|
|
|
|
void VlogSet::read_vlog_value(uint32_t vlog_num, uint32_t value_offset, std::string *value) { |
|
|
|
auto vlog_name = get_vlog_name(vlog_num); |
|
|
|
auto handler = std::fstream(vlog_name, std::ios::in | std::ios::out); |
|
|
@ -302,8 +302,9 @@ void VlogSet::read_vlog_value(uint32_t vlog_num, uint32_t value_offset, std::str |
|
|
|
uint16_t value_size; |
|
|
|
memcpy(&value_size, value_buff, sizeof(uint16_t)); |
|
|
|
value_size &= VALUE_SIZE_MASK; |
|
|
|
*value = std::string(value_buff); |
|
|
|
// value->assign(&value_buff[sizeof(uint16_t)], value_size);
|
|
|
|
// *value = std::string(value_buff);
|
|
|
|
assert(value_size <= VALUE_BUFF_SIZE); |
|
|
|
value->assign(&value_buff[sizeof(uint16_t)], value_size); |
|
|
|
handler.close(); |
|
|
|
} |
|
|
|
|
|
|
|