cpp-stat-bench 0.24.0
Benchmark library with statistics for C++.
Loading...
Searching...
No Matches
invocation_context_registry.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2023 MusicScience37 (Kenta Kabashima)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
21
22#include <memory>
23#include <utility>
24
27
28namespace stat_bench {
29namespace bench_impl {
30
31auto InvocationContextRegistry::instance() -> InvocationContextRegistry& {
32 static InvocationContextRegistry registry;
33 return registry;
34}
35
37 std::size_t iterations, std::size_t samples, std::size_t warming_up_samples)
39 context_ = std::make_unique<InvocationContext>(
40 std::move(cond), iterations, samples, warming_up_samples);
41 return *context_;
42}
43
44void InvocationContextRegistry::clear() noexcept { context_.reset(); }
45
47 if (!context_) {
48 throw StatBenchException("No InvocationContext has been created.");
49 }
50 return *context_;
51}
52
53InvocationContextRegistry::InvocationContextRegistry() : context_(nullptr) {}
54
55} // namespace bench_impl
56} // namespace stat_bench
Class of conditions of benchmarks.
Class of context of invocations of benchmarks.
Class of exceptions in this library.
static auto instance() -> InvocationContextRegistry &
Get the global instance.
auto get() const -> InvocationContext &
Get the context.
auto create(BenchmarkCondition cond, std::size_t iterations, std::size_t samples, std::size_t warming_up_samples) -> InvocationContext &
Create a context.
Definition of InvocationContext class.
Definition of InvocationContextRegistry class.
Namespace of internal implementation.
Namespace of stat_bench source codes.
Definition of StatBenchException class.