Skip to content

Commit

Permalink
Add [[nodiscard]] attribute to relevant functions for better code cla…
Browse files Browse the repository at this point in the history
…rity
  • Loading branch information
jkurdek committed Feb 8, 2025
1 parent 35f7d38 commit 95817dc
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 24 deletions.
7 changes: 4 additions & 3 deletions include/cascade_builder.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CascadeBuilder {
CascadeBuilder(const PredicateDisjunction& disjunction, const RawFilterData& raw_filter_data)
: disjunction_(disjunction), rf_data_(raw_filter_data) {}

std::vector<std::shared_ptr<Node>> GenerateValidCascades();
[[nodiscard]] std::vector<std::shared_ptr<Node>> GenerateValidCascades();

private:
std::shared_ptr<Node> fail_node = std::make_shared<Node>(0, 0, 0, nullptr, nullptr, NodeType::FAIL);
Expand All @@ -22,8 +22,9 @@ class CascadeBuilder {
std::bitset<kMaxConj> used_conjunctions_;
std::array<std::array<std::bitset<kMaxRfsInPred>, kMaxPred>, kMaxConj> used_rfs_;

std::vector<std::shared_ptr<Node>> HandleFail(const size_t current_depth);
std::vector<std::shared_ptr<Node>> HandleSuccess(const size_t current_depth, const size_t conjunction_idx);
[[nodiscard]] std::vector<std::shared_ptr<Node>> HandleFail(const size_t current_depth);
[[nodiscard]] std::vector<std::shared_ptr<Node>> HandleSuccess(const size_t current_depth,
const size_t conjunction_idx);
};

#endif // CASCADE_BUILDER_H_
2 changes: 1 addition & 1 deletion include/cascade_evaluator.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class CascadeEvaluator {
public:
CascadeEvaluator(const EstimationResult& estimation_result) : estimation_result_(estimation_result) {}

double EvaluateCascade(std::shared_ptr<Node> cascade);
[[nodiscard]] double EvaluateCascade(std::shared_ptr<Node> cascade);
std::array<double, kTotalMaxRfs + 2> rf_probabilities_; // Changes every call to EvaluateCascade
const size_t parse_idx_ = kTotalMaxRfs + 1;
const size_t fail_idx_ = kTotalMaxRfs;
Expand Down
4 changes: 2 additions & 2 deletions include/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

using bench_timer_t = std::chrono::time_point<std::chrono::steady_clock>;

inline bench_timer_t benchmark_start() { return std::chrono::steady_clock::now(); }
[[nodiscard]] inline bench_timer_t benchmark_start() { return std::chrono::steady_clock::now(); }

inline double benchmark_stop(bench_timer_t start) {
[[nodiscard]] inline double benchmark_stop(bench_timer_t start) {
auto end = std::chrono::steady_clock::now();
return std::chrono::duration_cast<std::chrono::microseconds>(end - start).count() / 1'000'000.0;
}
Expand Down
4 changes: 2 additions & 2 deletions include/input_reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

class InputReader {
public:
static std::string ReadFile(const std::string& filename);
static std::vector<std::string_view> ReadRecords(const std::string& input);
[[nodiscard]] static std::string ReadFile(const std::string& filename);
[[nodiscard]] static std::vector<std::string_view> ReadRecords(const std::string& input);
};

#endif // INPUT_READER_H_
11 changes: 4 additions & 7 deletions include/json_facade.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
#ifndef JSON_FACADE_H_
#define JSON_FACADE_H_

#include <optional>
#include <memory>
#include <string>
#include <string_view>
#include <unordered_map>
#include <vector>

#include "rapidjson/document.h"

struct Predicate {
std::string key;
std::string value;
Expand Down Expand Up @@ -38,18 +35,18 @@ class JsonQuery {
class JsonFacade {
public:
virtual ~JsonFacade() = default;
virtual bool EvaluateQuery(std::string_view jsonStr, const JsonQuery& query) = 0;
[[nodiscard]] virtual bool EvaluateQuery(std::string_view jsonStr, const JsonQuery& query) = 0;
};

class RapidJsonFacade : public JsonFacade {
public:
virtual bool EvaluateQuery(std::string_view jsonStr, const JsonQuery& query) override;
[[nodiscard]] virtual bool EvaluateQuery(std::string_view jsonStr, const JsonQuery& query) override;
};

class JsonQueryDriver {
public:
explicit JsonQueryDriver(std::unique_ptr<JsonFacade>&& json_facade = {}) : json_facade_(std::move(json_facade)) {}
bool RunQuery(std::string_view buffer, const JsonQuery& query);
[[nodiscard]] bool RunQuery(std::string_view buffer, const JsonQuery& query);

private:
std::unique_ptr<JsonFacade> json_facade_;
Expand Down
6 changes: 3 additions & 3 deletions include/raw_filter.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ struct RawFilterData {

class RawFilterQueryGenerator {
public:
static RawFilterData GenerateRawFilters(const PredicateDisjunction& disjunction);
static std::vector<std::string_view> GenerateRawFiltersFromPredicate(const std::string_view& input);
[[nodiscard]] static RawFilterData GenerateRawFilters(const PredicateDisjunction& disjunction);
[[nodiscard]] static std::vector<std::string_view> GenerateRawFiltersFromPredicate(const std::string_view& input);
};

inline size_t GetFlatIdx(size_t conj_idx, size_t pred_idx, size_t rf_idx) {
[[nodiscard]] inline size_t GetFlatIdx(size_t conj_idx, size_t pred_idx, size_t rf_idx) {
return conj_idx * kMaxPred * kMaxRfsInPred + pred_idx * kMaxRfsInPred + rf_idx;
}

Expand Down
11 changes: 6 additions & 5 deletions include/sparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,12 @@ class Sparser {

void Run(const std::string& input_path, const JsonQuery& json_query);

EstimationResult Calibrate(const std::vector<std::string_view>& input, const JsonQuery& json_query,
const RawFilterData& rf_data);
SparserSearchStats SearchCascade(const std::vector<std::string_view>& input, const JsonQuery& json_query,
const RawFilterData& rf_data, const std::shared_ptr<Node>);
NaiveSearchStats SearchNaive(const std::vector<std::string_view>& input, const JsonQuery& json_query);
[[nodiscard]] EstimationResult Calibrate(const std::vector<std::string_view>& input, const JsonQuery& json_query,
const RawFilterData& rf_data);
[[nodiscard]] SparserSearchStats SearchCascade(const std::vector<std::string_view>& input,
const JsonQuery& json_query, const RawFilterData& rf_data,
const std::shared_ptr<Node>);
[[nodiscard]] NaiveSearchStats SearchNaive(const std::vector<std::string_view>& input, const JsonQuery& json_query);

private:
std::unique_ptr<JsonQueryDriver> json_query_driver_;
Expand Down
3 changes: 2 additions & 1 deletion src/sparser/sparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ EstimationResult Sparser::Calibrate(const std::vector<std::string_view>& input,
}

auto json_query_start = rdtsc();
json_query_driver_->RunQuery(input[i], json_query);
auto query_result = json_query_driver_->RunQuery(input[i], json_query);
(void)query_result; // explicitly ignore the result
total_parser_time += (rdtsc() - json_query_start);
}

Expand Down

0 comments on commit 95817dc

Please sign in to comment.