in src/hbase/client/request-converter.cc [224:255]
std::unique_ptr<MutationProto> RequestConverter::ToMutation(const MutationType type,
const Mutation &mutation,
const int64_t nonce) {
auto pb_mut = std::make_unique<MutationProto>();
pb_mut->set_row(mutation.row());
pb_mut->set_mutate_type(type);
pb_mut->set_durability(mutation.Durability());
pb_mut->set_timestamp(mutation.TimeStamp());
// TODO: set attributes from the mutation (key value pairs).
if (nonce > 0) {
pb_mut->set_nonce(nonce);
}
for (const auto &family : mutation.FamilyMap()) {
for (const auto &cell : family.second) {
auto column = pb_mut->add_column_value();
column->set_family(cell->Family());
auto qual = column->add_qualifier_value();
qual->set_qualifier(cell->Qualifier());
qual->set_timestamp(cell->Timestamp());
auto cell_type = cell->Type();
if (type == pb::MutationProto_MutationType_DELETE ||
(type == pb::MutationProto_MutationType_PUT && IsDelete(cell_type))) {
qual->set_delete_type(ToDeleteType(cell_type));
}
qual->set_value(cell->Value());
}
}
return std::move(pb_mut);
}