36 lines
907 B
C++
36 lines
907 B
C++
// Copyright 2014 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "net/base/network_activity_monitor.h"
|
|
|
|
#include <atomic>
|
|
#include <type_traits>
|
|
|
|
#include "third_party/abseil-cpp/absl/base/attributes.h"
|
|
|
|
namespace net::activity_monitor {
|
|
|
|
namespace {
|
|
|
|
ABSL_CONST_INIT std::atomic<uint64_t> g_bytes_received = 0;
|
|
|
|
} // namespace
|
|
|
|
void IncrementBytesReceived(uint64_t bytes_received) {
|
|
// std::memory_order_relaxed is used because no other operation on
|
|
// |bytes_received_| depends on memory operations that happened before this
|
|
// increment.
|
|
g_bytes_received.fetch_add(bytes_received, std::memory_order_relaxed);
|
|
}
|
|
|
|
uint64_t GetBytesReceived() {
|
|
return g_bytes_received.load(std::memory_order_relaxed);
|
|
}
|
|
|
|
void ResetBytesReceivedForTesting() {
|
|
g_bytes_received = 0;
|
|
}
|
|
|
|
} // namespace net::activity_monitor
|