1 /*  Copyright 2019 Rene Rivera
2  *  Distributed under the Boost Software License, Version 1.0.
3  *  (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
4  */
5 
6 #ifndef B2_SYSINFO_H
7 #define B2_SYSINFO_H
8 
9 # include "config.h"
10 
11 namespace b2
12 {
13     /*
14     Provides information about the system, hardware and software, we are
15     running in.
16     */
17     class system_info
18     {
19         public:
20 
21         system_info();
22 
23         /*
24         Returns the number of physical CPU cores if available. Otherwise
25         returns 1.
26 
27         Currently implemented for: OS_MACOSX.
28         */
29         unsigned int cpu_core_count();
30 
31         /*
32         Returns the number of logical CPU threads is available. Otherwise
33         returns `spu_core_count()`.
34 
35         Currently implemented for: OS_MACOSX.
36         */
37         unsigned int cpu_thread_count();
38 
39         private:
40 
41         unsigned int cpu_core_count_ = 0;
42         unsigned int cpu_thread_count_ = 0;
43     };
44 }
45 
46 #endif
47