in src/hbase/client/request-converter.cc [56:90]
std::unique_ptr<hbase::pb::Scan> RequestConverter::ToScan(const Scan &scan) {
auto pb_scan = std::make_unique<hbase::pb::Scan>();
pb_scan->set_max_versions(scan.MaxVersions());
pb_scan->set_cache_blocks(scan.CacheBlocks());
pb_scan->set_reversed(scan.IsReversed());
pb_scan->set_caching(scan.Caching());
pb_scan->set_start_row(scan.StartRow());
pb_scan->set_stop_row(scan.StopRow());
pb_scan->set_consistency(scan.Consistency());
pb_scan->set_max_result_size(scan.MaxResultSize());
pb_scan->set_allow_partial_results(scan.AllowPartialResults());
pb_scan->set_load_column_families_on_demand(scan.LoadColumnFamiliesOnDemand());
if (!scan.Timerange().IsAllTime()) {
hbase::pb::TimeRange *pb_time_range = pb_scan->mutable_time_range();
pb_time_range->set_from(scan.Timerange().MinTimeStamp());
pb_time_range->set_to(scan.Timerange().MaxTimeStamp());
}
if (scan.HasFamilies()) {
for (const auto &family : scan.FamilyMap()) {
auto column = pb_scan->add_column();
column->set_family(family.first);
for (const auto &qualifier : family.second) {
column->add_qualifier(qualifier);
}
}
}
if (scan.filter() != nullptr) {
pb_scan->set_allocated_filter(Filter::ToProto(*(scan.filter())).release());
}
return std::move(pb_scan);
}