[FR] Provide public accessors to benchmark name and arguments #1551 (#1563) * [FR] Provide public accessors to benchmark name and arguments #1551 * Update AUTHORS and CONTRIBUTORS * Update benchmark_register.cc * Fix lint formatting
diff --git a/AUTHORS b/AUTHORS index b7b3b2e..bafecad 100644 --- a/AUTHORS +++ b/AUTHORS
@@ -46,6 +46,7 @@ Marcel Jacobse <mjacobse@uni-bremen.de> Matt Clarkson <mattyclarkson@gmail.com> Maxim Vafin <maxvafin@gmail.com> +Mike Apodaca <gatorfax@gmail.com> MongoDB Inc. Nick Hutchinson <nshutchinson@gmail.com> Norman Heino <norman.heino@gmail.com>
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 37b000a..56f03e2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS
@@ -67,6 +67,7 @@ Marcel Jacobse <mjacobse@uni-bremen.de> Matt Clarkson <mattyclarkson@gmail.com> Maxim Vafin <maxvafin@gmail.com> +Mike Apodaca <gatorfax@gmail.com> Nick Hutchinson <nshutchinson@gmail.com> Norman Heino <norman.heino@gmail.com> Oleksandr Sochka <sasha.sochka@gmail.com>
diff --git a/include/benchmark/benchmark.h b/include/benchmark/benchmark.h index 783fcd8..3e7e1dc 100644 --- a/include/benchmark/benchmark.h +++ b/include/benchmark/benchmark.h
@@ -1245,7 +1245,10 @@ explicit Benchmark(const char* name); void SetName(const char* name); + public: + const char* GetName() const; int ArgsCnt() const; + const char* GetArgName(int arg) const; private: friend class BenchmarkFamilies;
diff --git a/src/benchmark_register.cc b/src/benchmark_register.cc index eae2c32..4503dd1 100644 --- a/src/benchmark_register.cc +++ b/src/benchmark_register.cc
@@ -470,6 +470,8 @@ void Benchmark::SetName(const char* name) { name_ = name; } +const char* Benchmark::GetName() const { return name_.c_str(); } + int Benchmark::ArgsCnt() const { if (args_.empty()) { if (arg_names_.empty()) return -1; @@ -478,6 +480,12 @@ return static_cast<int>(args_.front().size()); } +const char* Benchmark::GetArgName(int arg) const { + BM_CHECK_GE(arg, 0); + BM_CHECK_LT(arg, static_cast<int>(arg_names_.size())); + return arg_names_[arg].c_str(); +} + TimeUnit Benchmark::GetTimeUnit() const { return use_default_time_unit_ ? GetDefaultTimeUnit() : time_unit_; }