blob: e2237026fb0a157f5f681d8c159fa8942da6b6da [file] [log] [blame]
henrike@webrtc.org47be73b2014-05-13 18:00:261/*
2 * Copyright 2008 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef WEBRTC_BASE_SYSTEMINFO_H__
12#define WEBRTC_BASE_SYSTEMINFO_H__
13
14#include <string>
15
16#include "webrtc/base/basictypes.h"
17
18namespace rtc {
19
20class SystemInfo {
21 public:
22 enum Architecture {
23 SI_ARCH_UNKNOWN = -1,
24 SI_ARCH_X86 = 0,
25 SI_ARCH_X64 = 1,
26 SI_ARCH_ARM = 2
27 };
28
29 SystemInfo();
30
henrike@webrtc.org47be73b2014-05-13 18:00:2631 // The number of CPU Threads in the system.
tommi0a34d312015-08-20 12:04:0932 static int GetMaxCpus();
henrike@webrtc.org47be73b2014-05-13 18:00:2633 // The number of CPU Threads currently available to this process.
tommi0a34d312015-08-20 12:04:0934 static int GetCurCpus();
henrike@webrtc.org47be73b2014-05-13 18:00:2635 // Identity of the CPUs.
36 Architecture GetCpuArchitecture();
37 std::string GetCpuVendor();
henrike@webrtc.org47be73b2014-05-13 18:00:2638 // Total amount of physical memory, in bytes.
39 int64 GetMemorySize();
40 // The model name of the machine, e.g. "MacBookAir1,1"
41 std::string GetMachineModel();
42
henrike@webrtc.org47be73b2014-05-13 18:00:2643 private:
tommi0a34d312015-08-20 12:04:0944 static int logical_cpus_;
henrike@webrtc.org47be73b2014-05-13 18:00:2645};
46
47} // namespace rtc
48
49#endif // WEBRTC_BASE_SYSTEMINFO_H__