1 // Copyright 2015 Google Inc. All rights reserved.
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
20 double Finish(Counter
const& c
, double cpu_time
, double num_threads
) {
22 if (c
.flags
& Counter::kIsRate
) {
25 if (c
.flags
& Counter::kAvgThreads
) {
31 void Finish(UserCounters
*l
, double cpu_time
, double num_threads
) {
33 c
.second
.value
= Finish(c
.second
, cpu_time
, num_threads
);
37 void Increment(UserCounters
*l
, UserCounters
const& r
) {
38 // add counters present in both or just in *l
40 auto it
= r
.find(c
.first
);
42 c
.second
.value
= c
.second
+ it
->second
;
45 // add counters present in r, but not in *l
46 for (auto const &tc
: r
) {
47 auto it
= l
->find(tc
.first
);
49 (*l
)[tc
.first
] = tc
.second
;
54 bool SameNames(UserCounters
const& l
, UserCounters
const& r
) {
55 if (&l
== &r
) return true;
56 if (l
.size() != r
.size()) {
59 for (auto const& c
: l
) {
60 if (r
.find(c
.first
) == r
.end()) {
67 } // end namespace internal
68 } // end namespace benchmark