Index: webrtc/base/cpumonitor.h |
diff --git a/webrtc/base/cpumonitor.h b/webrtc/base/cpumonitor.h |
deleted file mode 100644 |
index e82ae695167c84d3554bda69565729cfa29fb883..0000000000000000000000000000000000000000 |
--- a/webrtc/base/cpumonitor.h |
+++ /dev/null |
@@ -1,123 +0,0 @@ |
-/* |
- * Copyright 2010 The WebRTC Project Authors. All rights reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
-#ifndef WEBRTC_BASE_CPUMONITOR_H_ |
-#define WEBRTC_BASE_CPUMONITOR_H_ |
- |
-#include "webrtc/base/basictypes.h" |
-#include "webrtc/base/messagehandler.h" |
-#include "webrtc/base/scoped_ptr.h" |
-#include "webrtc/base/sigslot.h" |
-#if defined(WEBRTC_LINUX) |
-#include "webrtc/base/stream.h" |
-#endif // defined(WEBRTC_LINUX) |
- |
-namespace rtc { |
-class Thread; |
-class SystemInfo; |
- |
-struct CpuStats { |
- CpuStats() |
- : prev_total_times_(0), |
- prev_cpu_times_(0), |
- prev_load_(0.f), |
- prev_load_time_(0u) { |
- } |
- |
- uint64 prev_total_times_; |
- uint64 prev_cpu_times_; |
- float prev_load_; // Previous load value. |
- uint32 prev_load_time_; // Time previous load value was taken. |
-}; |
- |
-// CpuSampler samples the process and system load. |
-class CpuSampler { |
- public: |
- CpuSampler(); |
- ~CpuSampler(); |
- |
- // Initialize CpuSampler. Returns true if successful. |
- bool Init(); |
- |
- // Set minimum interval in ms between computing new load values. |
- // Default 950 ms. Set to 0 to disable interval. |
- void set_load_interval(int min_load_interval); |
- |
- // Return CPU load of current process as a float from 0 to 1. |
- float GetProcessLoad(); |
- |
- // Return CPU load of current process as a float from 0 to 1. |
- float GetSystemLoad(); |
- |
- // Return number of cpus. Includes hyperthreads. |
- int GetMaxCpus() const; |
- |
- // Return current number of cpus available to this process. |
- int GetCurrentCpus(); |
- |
- // For testing. Allows forcing of fallback to using NTDLL functions. |
- void set_force_fallback(bool fallback) { |
-#if defined(WEBRTC_WIN) |
- force_fallback_ = fallback; |
-#endif |
- } |
- |
- private: |
- float UpdateCpuLoad(uint64 current_total_times, |
- uint64 current_cpu_times, |
- uint64 *prev_total_times, |
- uint64 *prev_cpu_times); |
- CpuStats process_; |
- CpuStats system_; |
- int cpus_; |
- int min_load_interval_; // Minimum time between computing new load. |
- scoped_ptr<SystemInfo> sysinfo_; |
-#if defined(WEBRTC_WIN) |
- void* get_system_times_; |
- void* nt_query_system_information_; |
- bool force_fallback_; |
-#endif |
-#if defined(WEBRTC_LINUX) |
- // File for reading /proc/stat |
- scoped_ptr<FileStream> sfile_; |
-#endif // defined(WEBRTC_LINUX) |
-}; |
- |
-// CpuMonitor samples and signals the CPU load periodically. |
-class CpuMonitor |
- : public rtc::MessageHandler, public sigslot::has_slots<> { |
- public: |
- explicit CpuMonitor(Thread* thread); |
- ~CpuMonitor() override; |
- void set_thread(Thread* thread); |
- |
- bool Start(int period_ms); |
- void Stop(); |
- // Signal parameters are current cpus, max cpus, process load and system load. |
- sigslot::signal4<int, int, float, float> SignalUpdate; |
- |
- protected: |
- // Override virtual method of parent MessageHandler. |
- void OnMessage(rtc::Message* msg) override; |
- // Clear the monitor thread and stop sending it messages if the thread goes |
- // away before our lifetime. |
- void OnMessageQueueDestroyed() { monitor_thread_ = NULL; } |
- |
- private: |
- Thread* monitor_thread_; |
- CpuSampler sampler_; |
- int period_ms_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CpuMonitor); |
-}; |
- |
-} // namespace rtc |
- |
-#endif // WEBRTC_BASE_CPUMONITOR_H_ |