get_cpu_stats_windows.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2018 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
20 
21 #ifdef GPR_WINDOWS
22 
23 #include <windows.h>
24 
25 #include <cstdint>
26 
28 
29 namespace grpc {
30 namespace load_reporter {
31 
32 namespace {
33 
34 uint64_t FiletimeToInt(const FILETIME& ft) {
35  ULARGE_INTEGER i;
36  i.LowPart = ft.dwLowDateTime;
37  i.HighPart = ft.dwHighDateTime;
38  return i.QuadPart;
39 }
40 
41 } // namespace
42 
43 std::pair<uint64_t, uint64_t> GetCpuStatsImpl() {
44  uint64_t busy = 0, total = 0;
45  FILETIME idle, kernel, user;
46  if (GetSystemTimes(&idle, &kernel, &user) != 0) {
47  total = FiletimeToInt(kernel) + FiletimeToInt(user);
48  busy = total - FiletimeToInt(idle);
49  }
50  return std::make_pair(busy, total);
51 }
52 
53 } // namespace load_reporter
54 } // namespace grpc
55 
56 #endif // GPR_WINDOWS
idle
static uv_idle_t idle
Definition: test-poll-oob.c:37
grpc
Definition: grpcpp/alarm.h:33
grpc::load_reporter::GetCpuStatsImpl
std::pair< uint64_t, uint64_t > GetCpuStatsImpl()
Definition: get_cpu_stats_unsupported.cc:30
total
size_t total
Definition: cord_analysis.cc:59
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90
get_cpu_stats.h
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:28