| #ifndef BENCHMARK_API_INTERNAL_H |
| #define BENCHMARK_API_INTERNAL_H |
| |
| #include "benchmark/benchmark.h" |
| #include "commandlineflags.h" |
| |
| #include <cmath> |
| #include <iosfwd> |
| #include <limits> |
| #include <memory> |
| #include <string> |
| #include <vector> |
| |
| namespace benchmark { |
| namespace internal { |
| |
| // Information kept per benchmark we may want to run |
| struct BenchmarkInstance { |
| std::string name; |
| Benchmark* benchmark; |
| AggregationReportMode aggregation_report_mode; |
| std::vector<int64_t> arg; |
| TimeUnit time_unit; |
| int range_multiplier; |
| bool use_real_time; |
| bool use_manual_time; |
| BigO complexity; |
| BigOFunc* complexity_lambda; |
| UserCounters counters; |
| const std::vector<Statistics>* statistics; |
| bool last_benchmark_instance; |
| int repetitions; |
| double min_time; |
| size_t iterations; |
| int threads; // Number of concurrent threads to us |
| |
| State Run(size_t iters, int thread_id, internal::ThreadTimer* timer, |
| internal::ThreadManager* manager) const; |
| }; |
| |
| bool FindBenchmarksInternal(const std::string& re, |
| std::vector<BenchmarkInstance>* benchmarks, |
| std::ostream* Err); |
| |
| bool IsZero(double n); |
| |
| ConsoleReporter::OutputOptions GetOutputOptions(bool force_no_color = false); |
| |
| } // end namespace internal |
| } // end namespace benchmark |
| |
| #endif // BENCHMARK_API_INTERNAL_H |