xtd 0.2.0
operating_system.h
Go to the documentation of this file.
1 #pragma once
5 #include "optional.h"
6 #include "distribution.h"
7 #include "object.h"
8 #include "platform_id.h"
9 #include "ustring.h"
10 #include "version.h"
11 #include <map>
12 #include <vector>
13 
15 namespace xtd {
25  class operating_system final : public object {
26  public:
28 
50  operating_system(xtd::platform_id platform, const xtd::version& version, const xtd::ustring& service_pack, const xtd::ustring& desktop_environment);
59  operating_system(xtd::platform_id platform, const xtd::version& version, const xtd::ustring& service_pack, const xtd::ustring& desktop_environment, const xtd::ustring& desktop_theme);
69  operating_system(xtd::platform_id platform, const xtd::version& version, const xtd::ustring& service_pack, const xtd::ustring& desktop_environment, const xtd::ustring& desktop_theme, bool is_64_bit);
80  operating_system(xtd::platform_id platform, const xtd::version& version, const xtd::ustring& service_pack, const xtd::ustring& desktop_environment, const xtd::ustring& desktop_theme, bool is_64_bit, const xtd::distribution& distribution);
82 
84  operating_system() = default;
85  operating_system(const operating_system&) = default;
86  operating_system& operator =(const operating_system&) = default;
88 
90 
97  xtd::ustring desktop_environment() const noexcept;
98 
104  xtd::ustring desktop_theme() const noexcept;
105 
108  xtd::distribution distribution() const noexcept;
109 
112  xtd::ustring name() const noexcept;
113 
116  xtd::platform_id platform() const noexcept;
117 
122  xtd::ustring service_pack() const noexcept;
123 
127  const xtd::version& version() const noexcept;
128 
132  xtd::ustring version_string() const noexcept;
134 
136 
140  bool is_64_bit() const noexcept;
141 
144  bool is_android() const noexcept;
145 
148  bool is_ios() const noexcept;
149 
152  bool is_macos() const noexcept;
153 
156  bool is_macos_platform() const noexcept;
157 
160  bool is_linux() const noexcept;
161 
164  bool is_unix_platform() const noexcept;
165 
168  bool is_tvos() const noexcept;
169 
172  bool is_watchos() const noexcept;
173 
176  bool is_windows() const noexcept;
177 
180  bool is_windows_ce() const noexcept;
181 
184  bool is_windows_platform() const noexcept;
185 
188  bool is_xbox() const noexcept;
189 
192  xtd::ustring to_string() const noexcept override;
194 
195  private:
197  xtd::version version_;
198  xtd::ustring service_pack_;
199  xtd::ustring desktop_environment_;
200  xtd::ustring desktop_theme_;
201  bool is_64_bit_ = false;
202  xtd::distribution distribution_;
203  mutable xtd::ustring version_string_;
204  };
205 }
operating_system(xtd::platform_id platform, const xtd::version &version)
Initializes a new instance of the operating_system class, using the specified platform identifier val...
Contains std::optional type and std::bad_optional_access exception.
const xtd::version & version() const noexcept
Gets a xtd::version object that identifies the operating system.
bool is_linux() const noexcept
Determines whether the current platform is Linux.
xtd::ustring version_string() const noexcept
Gets the concatenated string representation of the platform identifier, version, and service pack tha...
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
bool is_windows_platform() const noexcept
Determines whether the current platform is Windows family.
xtd::ustring desktop_environment() const noexcept
Gets the desktop environment.
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition: version.h:95
Represents information about an operating system, such as the version and platform identifier...
Definition: operating_system.h:25
bool is_windows_ce() const noexcept
Determines whether the current platform is Windows CE.
bool is_macos_platform() const noexcept
Determines whether the current platform is macOS family.
xtd::ustring desktop_theme() const noexcept
Gets the desktop theme.
Contains xtd::distribution class.
The processor architecture is unknown.
bool is_unix_platform() const noexcept
Determines whether the current platform is Unix family.
bool is_tvos() const noexcept
Determines whether the current platform is tvOS family.
Contains xtd::ustring class.
bool is_android() const noexcept
Determines whether the current platform is Android.
Contains xtd::version class.
Represents information about an operating system distribution, such as the version and name...
Definition: distribution.h:27
Contains xtd::object class.
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes...
Definition: object.h:32
bool is_64_bit() const noexcept
Determines whether the current operating system is a 64-bit operating system.
bool is_ios() const noexcept
Determines whether the current platform is iOS.
bool is_xbox() const noexcept
Determines whether the current platform is xbox.
xtd::ustring to_string() const noexcept override
Converts the value of this operating_system object to its equivalent string representation.
bool is_windows() const noexcept
Determines whether the current platform is Windows.
platform_id
Identifies the operating system, or platform, supported by an assembly.
Definition: platform_id.h:18
bool is_macos() const noexcept
Determines whether the current platform is macOS.
xtd::ustring name() const noexcept
Gets the concatenated string representation of the platform identifier.
xtd::ustring service_pack() const noexcept
Gets the service pack version represented by this operating_system object.
xtd::platform_id platform() const noexcept
Gets a xtd::platform_id enumeration value that identifies the operating system platform.
bool is_watchos() const noexcept
Determines whether the current platform is watchOS.
Contains xtd::platform_id enum class.
xtd::distribution distribution() const noexcept
Gets the distribution.