@@ -118,27 +118,27 @@ Status stats_to_capnp(Stats& stats, capnp::Stats::Builder* stats_builder) {
118118 return Status::Ok ();
119119}
120120
121- Status stats_from_capnp (
122- const capnp::Stats::Reader& stats_reader, Stats* stats) {
121+ StatsData stats_from_capnp (const capnp::Stats::Reader& stats_reader) {
122+ std::unordered_map<std::string, uint64_t > counters;
123+ std::unordered_map<std::string, double > timers;
124+
123125 if (stats_reader.hasCounters ()) {
124- auto counters = stats->counters ();
125126 auto counters_reader = stats_reader.getCounters ();
126127 for (const auto entry : counters_reader.getEntries ()) {
127128 auto key = std::string_view{entry.getKey ().cStr (), entry.getKey ().size ()};
128- (* counters) [std::string{ key} ] = entry.getValue ();
129+ counters[std::string ( key) ] = entry.getValue ();
129130 }
130131 }
131132
132133 if (stats_reader.hasTimers ()) {
133- auto timers = stats->timers ();
134134 auto timers_reader = stats_reader.getTimers ();
135135 for (const auto entry : timers_reader.getEntries ()) {
136136 auto key = std::string_view{entry.getKey ().cStr (), entry.getKey ().size ()};
137- (* timers) [std::string{ key} ] = entry.getValue ();
137+ timers[std::string ( key) ] = entry.getValue ();
138138 }
139139 }
140140
141- return Status::Ok ( );
141+ return stats::StatsData (counters, timers );
142142}
143143
144144void range_buffers_to_capnp (
@@ -328,11 +328,8 @@ Status subarray_from_capnp(
328328
329329 // If cap'n proto object has stats set it on c++ object
330330 if (reader.hasStats ()) {
331- stats::Stats* stats = subarray->stats ();
332- // We should always have a stats here
333- if (stats != nullptr ) {
334- RETURN_NOT_OK (stats_from_capnp (reader.getStats (), stats));
335- }
331+ auto stats_data = stats_from_capnp (reader.getStats ());
332+ subarray->set_stats (stats_data);
336333 }
337334
338335 if (reader.hasRelevantFragments ()) {
@@ -566,11 +563,8 @@ Status subarray_partitioner_from_capnp(
566563
567564 // If cap'n proto object has stats set it on c++ object
568565 if (reader.hasStats ()) {
569- auto stats = partitioner->stats ();
570- // We should always have stats
571- if (stats != nullptr ) {
572- RETURN_NOT_OK (stats_from_capnp (reader.getStats (), stats));
573- }
566+ auto stats_data = stats_from_capnp (reader.getStats ());
567+ partitioner->set_stats (stats_data);
574568 }
575569
576570 return Status::Ok ();
@@ -1146,11 +1140,8 @@ Status reader_from_capnp(
11461140
11471141 // If cap'n proto object has stats set it on c++ object
11481142 if (reader_reader.hasStats ()) {
1149- stats::Stats* stats = reader->stats ();
1150- // We should always have a stats here
1151- if (stats != nullptr ) {
1152- RETURN_NOT_OK (stats_from_capnp (reader_reader.getStats (), stats));
1153- }
1143+ auto stats_data = stats_from_capnp (reader_reader.getStats ());
1144+ reader->set_stats (stats_data);
11541145 }
11551146
11561147 return Status::Ok ();
@@ -1187,11 +1178,8 @@ Status index_reader_from_capnp(
11871178
11881179 // If cap'n proto object has stats set it on c++ object
11891180 if (reader_reader.hasStats ()) {
1190- stats::Stats* stats = reader->stats ();
1191- // We should always have a stats here
1192- if (stats != nullptr ) {
1193- RETURN_NOT_OK (stats_from_capnp (reader_reader.getStats (), stats));
1194- }
1181+ auto stats_data = stats_from_capnp (reader_reader.getStats ());
1182+ reader->set_stats (stats_data);
11951183 }
11961184
11971185 return Status::Ok ();
@@ -1229,11 +1217,8 @@ Status dense_reader_from_capnp(
12291217
12301218 // If cap'n proto object has stats set it on c++ object
12311219 if (reader_reader.hasStats ()) {
1232- stats::Stats* stats = reader->stats ();
1233- // We should always have a stats here
1234- if (stats != nullptr ) {
1235- RETURN_NOT_OK (stats_from_capnp (reader_reader.getStats (), stats));
1236- }
1220+ auto stats_data = stats_from_capnp (reader_reader.getStats ());
1221+ reader->set_stats (stats_data);
12371222 }
12381223
12391224 return Status::Ok ();
@@ -1252,11 +1237,8 @@ Status delete_from_capnp(
12521237
12531238 // If cap'n proto object has stats set it on c++ object
12541239 if (delete_reader.hasStats ()) {
1255- stats::Stats* stats = delete_strategy->stats ();
1256- // We should always have a stats here
1257- if (stats != nullptr ) {
1258- RETURN_NOT_OK (stats_from_capnp (delete_reader.getStats (), stats));
1259- }
1240+ auto stats_data = stats_from_capnp (delete_reader.getStats ());
1241+ delete_strategy->set_stats (stats_data);
12601242 }
12611243
12621244 return Status::Ok ();
@@ -1341,11 +1323,8 @@ Status writer_from_capnp(
13411323
13421324 // If cap'n proto object has stats set it on c++ object
13431325 if (writer_reader.hasStats ()) {
1344- stats::Stats* stats = writer->stats ();
1345- // We should always have a stats here
1346- if (stats != nullptr ) {
1347- RETURN_NOT_OK (stats_from_capnp (writer_reader.getStats (), stats));
1348- }
1326+ auto stats_data = stats_from_capnp (writer_reader.getStats ());
1327+ writer->set_stats (stats_data);
13491328 }
13501329
13511330 if (query.layout () == Layout::GLOBAL_ORDER &&
@@ -2270,11 +2249,8 @@ Status query_from_capnp(
22702249
22712250 // If cap'n proto object has stats set it on c++ object
22722251 if (query_reader.hasStats ()) {
2273- stats::Stats* stats = query->stats ();
2274- // We should always have a stats here
2275- if (stats != nullptr ) {
2276- RETURN_NOT_OK (stats_from_capnp (query_reader.getStats (), stats));
2277- }
2252+ auto stats_data = stats_from_capnp (query_reader.getStats ());
2253+ query->set_stats (stats_data);
22782254 }
22792255
22802256 if (query_reader.hasWrittenFragmentInfo ()) {
@@ -3212,11 +3188,8 @@ void ordered_dim_label_reader_from_capnp(
32123188
32133189 // If cap'n proto object has stats set it on c++ object
32143190 if (reader_reader.hasStats ()) {
3215- stats::Stats* stats = reader->stats ();
3216- // We should always have a stats here
3217- if (stats != nullptr ) {
3218- throw_if_not_ok (stats_from_capnp (reader_reader.getStats (), stats));
3219- }
3191+ auto stats_data = stats_from_capnp (reader_reader.getStats ());
3192+ reader->set_stats (stats_data);
32203193 }
32213194}
32223195
0 commit comments