NRE_System.hpp
Go to the documentation of this file.
1 
10  #pragma once
11 
12  #include <cstring>
13  #include <iostream>
14  #include <fstream>
15 
16  #include "Info/NRE_SystemInfo.hpp"
17  #include "CpuID/NRE_CpuID.hpp"
19  #include "Event/NRE_EventSystem.hpp"
20  #include "Time/Clock/NRE_Clock.hpp"
21 
22  #include <Utility/String/NRE_String.hpp>
23  #include <Utility/Singleton/NRE_Singleton.hpp>
24 
29  namespace NRE {
34  namespace System {
35 
40  class System : public Utility::Singleton<System> {
41  friend Utility::Singleton<System>;
42  private : // Fields
43  SystemInfo infos;
44  GraphicsSystem graphics;
45  EventSystem events;
46  Time::Clock clock;
48  public : // Methods
49  //## Move Constructor ##//
54  System(System && sys) = delete;
55 
56  //## Deconstructor ##//
60  ~System() = default;
61 
62  //## Getter ##//
66  Utility::String getSystemName() const;
70  SystemInfo const& getSystemInfo() const;
83 
84  //## Methods ##//
88  void queryMemoryInfo();
92  void querySystemInfo();
96  void queryCPUName();
97 
98  //## Assignment Operator ##//
104  System& operator =(System && s) = delete;
105 
106  //## Stream Operator ##//
111  Utility::String toString() const;
112 
113  private : // Methods
114  //## Constructor ##//
118  System();
119  };
120 
127  std::ostream& operator <<(std::ostream& stream, System const& o);
128  }
129  }
130 
131  #include "NRE_System.tpp"
void querySystemInfo()
Definition: NRE_LinuxSystem.cpp:44
Manage the event sub system.
Definition: NRE_EventSystem.hpp:44
Utility::String toString() const
Definition: NRE_System.cpp:23
Utility::String getSystemName() const
Definition: NRE_LinuxSystem.cpp:20
System & operator=(System &&s)=delete
Declaration of System&#39;s API&#39;s Object : CpuID.
GraphicsSystem & getGraphicsSystem()
SystemInfo const & getSystemInfo() const
Manage the graphics sub system.
Definition: NRE_GraphicsSystem.hpp:32
Represent all informations from the user system.
Definition: NRE_SystemInfo.hpp:31
Declaration of System&#39;s API&#39;s Object : EventSystem.
System&#39;s API.
Declaration of System&#39;s API&#39;s Object : SystemInfo.
EventSystem & getEventSystem()
Declaration of Time&#39;s API&#39;s Object : Clock.
The NearlyRealEngine&#39;s global namespace.
Time::Clock & getClock()
void queryCPUName()
Definition: NRE_LinuxSystem.cpp:54
Manage timing and program pause.
Definition: NRE_Clock.hpp:40
Declaration of System&#39;s API&#39;s Object : GraphicsSystem.
void queryMemoryInfo()
Definition: NRE_LinuxSystem.cpp:24