• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef BENCHMARK_API_INTERNAL_H
2 #define BENCHMARK_API_INTERNAL_H
3 
4 #include "benchmark/benchmark.h"
5 
6 #include <cmath>
7 #include <iosfwd>
8 #include <limits>
9 #include <string>
10 #include <vector>
11 
12 namespace benchmark {
13 namespace internal {
14 
15 // Information kept per benchmark we may want to run
16 struct Benchmark::Instance {
17   std::string name;
18   Benchmark* benchmark;
19   ReportMode report_mode;
20   std::vector<int> arg;
21   TimeUnit time_unit;
22   int range_multiplier;
23   bool use_real_time;
24   bool use_manual_time;
25   BigO complexity;
26   BigOFunc* complexity_lambda;
27   UserCounters counters;
28   const std::vector<Statistics>* statistics;
29   bool last_benchmark_instance;
30   int repetitions;
31   double min_time;
32   size_t iterations;
33   int threads;  // Number of concurrent threads to us
34 };
35 
36 bool FindBenchmarksInternal(const std::string& re,
37                             std::vector<Benchmark::Instance>* benchmarks,
38                             std::ostream* Err);
39 
40 bool IsZero(double n);
41 
42 ConsoleReporter::OutputOptions GetOutputOptions(bool force_no_color = false);
43 
44 }  // end namespace internal
45 }  // end namespace benchmark
46 
47 #endif  // BENCHMARK_API_INTERNAL_H
48