xtd 0.2.0
distribution.h
Go to the documentation of this file.
1 #pragma once
5 #include "optional.h"
6 #include "object.h"
7 #include "platform_id.h"
8 #include "uri.h"
9 #include "ustring.h"
10 #include "version.h"
11 #include <map>
12 #include <vector>
13 
15 namespace xtd {
27  class distribution final : public object {
28  public:
29  using id_collection = std::vector<xtd::ustring>;
31 
43  distribution(const xtd::ustring& name, const xtd::version& version, const xtd::ustring& code_name, const xtd::ustring& description, const xtd::ustring& id, const id_collection& like_ids, const xtd::ustring& version_string, const xtd::uri& home, const xtd::uri& bug_repport);
45 
47  distribution() = default;
48  distribution(const distribution&) = default;
49  distribution& operator =(const distribution&) = default;
51 
53 
57  const xtd::uri& bug_repport() const noexcept;
58 
61  const xtd::ustring& code_name() const noexcept;
62 
65  const xtd::ustring& description() const noexcept;
66 
69  const xtd::uri& home() const noexcept;
70 
73  const xtd::ustring& id() const noexcept;
74 
77  const id_collection& like_ids() const noexcept;
78 
81  const xtd::ustring& name() const noexcept;
82 
85  const xtd::version& version() const noexcept;
86 
89  const xtd::ustring& version_string() const noexcept;
91 
93 
97  xtd::ustring to_string() const noexcept override;
99 
100  private:
101  xtd::ustring name_;
102  xtd::version version_;
103  xtd::ustring code_name_;
104  xtd::ustring description_;
105  xtd::ustring id_;
106  id_collection like_ids_;
107  xtd::ustring version_string_;
108  xtd::uri home_;
109  xtd::uri bug_repport_;
110  };
111 }
const xtd::uri & bug_repport() const noexcept
Gets operating system distribution bug repport url.
Contains std::optional type and std::bad_optional_access exception.
const xtd::ustring & id() const noexcept
Gets operating system distribution identifier.
distribution(const xtd::ustring &name, const xtd::version &version, const xtd::ustring &code_name, const xtd::ustring &description, const xtd::ustring &id, const id_collection &like_ids, const xtd::ustring &version_string, const xtd::uri &home, const xtd::uri &bug_repport)
Initializes a new instance of the distribution class, using the specified name, version, code name, decription, identifier, like identifiers array, version string, home url and bug repport url.
const id_collection & like_ids() const noexcept
Gets operating system distribution like identifiers array.
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Contains xtd::uri class.
const xtd::ustring & name() const noexcept
Gets operating system distribution name. For example "Ubuntu".
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
const xtd::uri & home() const noexcept
Gets operating system distribution home url.
Represents the version number of an assembly, operating system, or the xtd. This class cannot be inhe...
Definition: version.h:95
const xtd::ustring & description() const noexcept
Gets operating system distribution description. For example "Ubuntu 22.04.2 LTS". ...
Contains xtd::ustring class.
Contains xtd::version class.
Represents information about an operating system distribution, such as the version and name...
Definition: distribution.h:27
const xtd::version & version() const noexcept
Gets a xtd::version object that identifies the operating system distribution. For example xtd::versio...
const xtd::ustring & version_string() const noexcept
Gets operating system distribution version string.
Provides an object representation of a uniform resource identifier (URI) and easy access to the parts...
Definition: uri.h:103
const xtd::ustring & code_name() const noexcept
Gets operating system distribution code name. For example "jammy".
Contains xtd::object class.
xtd::ustring to_string() const noexcept override
Converts the value of this distribution object to its equivalent string representation.
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes...
Definition: object.h:32
Contains xtd::platform_id enum class.