Gamedev Framework (gf)  0.3.0
A C++11 framework for 2D games
SystemInfo.h
1 /*
2  * Gamedev Framework (gf)
3  * Copyright (C) 2016 Julien Bernard
4  *
5  * This software is provided 'as-is', without any express or implied
6  * warranty. In no event will the authors be held liable for any damages
7  * arising from the use of this software.
8  *
9  * Permission is granted to anyone to use this software for any purpose,
10  * including commercial applications, and to alter it and redistribute it
11  * freely, subject to the following restrictions:
12  *
13  * 1. The origin of this software must not be misrepresented; you must not
14  * claim that you wrote the original software. If you use this software
15  * in a product, an acknowledgment in the product documentation would be
16  * appreciated but is not required.
17  * 2. Altered source versions must be plainly marked as such, and must not be
18  * misrepresented as being the original software.
19  * 3. This notice may not be removed or altered from any source distribution.
20  */
21 #ifndef GF_SYSTEM_INFO_H
22 #define GF_SYSTEM_INFO_H
23 
24 #include <string>
25 
26 #include "Portability.h"
27 
28 namespace gf {
29 #ifndef DOXYGEN_SHOULD_SKIP_THIS
30 inline namespace v1 {
31 #endif
32 
33  /**
34  * @ingroup core
35  * @brief A class for system info
36  *
37  * This class only contains static methods. You can get:
38  *
39  * - the plaform name (e.g. "Linux")
40  * - the CPU cache line size
41  * - the number of CPU cores
42  * - the amount of memory (RAM)
43  *
44  */
46  public:
47  /**
48  * @brief Deleted default constructor
49  */
50  SystemInfo() = delete;
51 
52  /**
53  * @brief Get the plaform name
54  *
55  * The plaform can be:
56  *
57  * - Windows
58  * - Mac OS X
59  * - Linux
60  * - iOS
61  * - Android
62  * - Unknown
63  *
64  * @return The plaform name (e.g. "Linux")
65  */
66  static std::string getPlatformName();
67 
68  /**
69  * @brief Get the CPU L1 cache line size
70  *
71  * @return The L1 cache line size of the CPU, in kilobytes
72  */
73  static int getCpuCacheLineSize();
74 
75  /**
76  * @brief Get the number of CPU cores
77  *
78  * This function returns the number of logical CPU cores.
79  *
80  * @return The number of CPU cores
81  */
82  static int getCpuCount();
83 
84  /**
85  * @brief Get the amount of memory
86  *
87  * @return The amount of memory (RAM), in megabytes
88  */
89  static int getSystemRamSize();
90 
91  };
92 
93 #ifndef DOXYGEN_SHOULD_SKIP_THIS
94 }
95 #endif
96 }
97 
98 #endif // GF_SYSTEM_INFO_H
SystemInfo()=delete
Deleted default constructor.
static int getCpuCount()
Get the number of CPU cores.
static int getSystemRamSize()
Get the amount of memory.
static int getCpuCacheLineSize()
Get the CPU L1 cache line size.
static std::string getPlatformName()
Get the plaform name.
Definition: Action.h:34
A class for system info.
Definition: SystemInfo.h:45
#define GF_API
Definition: Portability.h:35