xtd - Reference Guide  0.1.1
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
guid.h
Go to the documentation of this file.
1 #pragma once
5 #include <vector>
6 #include "core_export.h"
7 #include "icomparable.h"
8 #include "iequatable.h"
9 #include "object.h"
10 #include "ustring.h"
11 
13 namespace xtd {
23  struct core_export_ guid final : public object, public icomparable<guid>, public iequatable<guid> {
24  public:
28  static const guid empty;
29 
31  guid() = default;
35  explicit guid(const std::vector<byte_t>& data);
39  explicit guid(const std::initializer_list<byte_t>& data);
46  explicit guid(int32_t a, int32_t b, int32_t c, const std::vector<byte_t>& d);
59  guid(int32_t a, int16_t b, int16_t c, byte_t d, byte_t e, byte_t f, byte_t g, byte_t h, byte_t i, byte_t j, byte_t k) noexcept;
72  guid(uint32_t a, uint16_t b, uint16_t c, byte_t d, byte_t e, byte_t f, byte_t g, byte_t h, byte_t i, byte_t j, byte_t k) noexcept;
96  guid(const ustring& guid);
97 
99  guid(const guid&) = default;
100  guid& operator=(const guid&) = default;
101  friend std::ostream& operator <<(std::ostream& os, const guid& guid) noexcept {return os << guid.to_string();}
103 
113  int32_t compare_to(const object& obj) const noexcept override;
123  int32_t compare_to(const guid& value) const noexcept override;
124 
125  bool equals(const object& g) const noexcept override;
126  bool equals(const guid& g) const noexcept override;
127 
132  static guid new_guid() noexcept;
133 
136  const std::vector<byte_t>& to_byte_array() const noexcept;
137 
143  xtd::ustring to_string() const noexcept override;
161  ustring to_string(ustring format) const;
162 
163  private:
164  std::vector<byte_t> data_ = std::vector<byte_t>(16);
165  };
166 
168  template<>
169  inline std::string to_string(const guid& value, const std::string& fmt, const std::locale& loc) {
170  return value.to_string(fmt);
171  }
173 }
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition: icomparable.h:18
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition: iequatable.h:19
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition: object.h:26
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Contains core_export_ keyword.
#define core_export_
Define shared library export.
Definition: core_export.h:13
std::string to_string(const value_t &value, const std::string &fmt, const std::locale &loc)
Convert a specified value into a string with specified format and locale.
Definition: to_string.h:37
Contains xtd::icomparable interface.
Contains xtd::iequatable interface.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::object class.
Represents a globally unique identifier (GUID). A GUID is a 128-bit integer (16 bytes) that can be us...
Definition: guid.h:23
static guid new_guid() noexcept
Initializes a new instance of the xtd::guid structure.
guid()=default
Initializes a new instance of the xtd::guid structure.
static const guid empty
Get A read-only instance of the xtd::guid structure whose value is all zeros.
Definition: guid.h:28
guid(const std::vector< byte_t > &data)
Initializes a new instance of the xtd::guid structure by using the specified array of bytes.
guid(const std::initializer_list< byte_t > &data)
Initializes a new instance of the xtd::guid structure by using the specified array of bytes.
guid(int32_t a, int16_t b, int16_t c, byte_t d, byte_t e, byte_t f, byte_t g, byte_t h, byte_t i, byte_t j, byte_t k) noexcept
Initializes a new instance of the xtd::guid structure by using the specified integers and bytes.
bool equals(const object &g) const noexcept override
Determines whether the specified object is equal to the current object.
bool equals(const guid &g) const noexcept override
Indicates whether the current object is equal to another object of the same type.
guid(uint32_t a, uint16_t b, uint16_t c, byte_t d, byte_t e, byte_t f, byte_t g, byte_t h, byte_t i, byte_t j, byte_t k) noexcept
Initializes a new instance of the xtd::guid structure by using the specified uint32_integers and byte...
xtd::ustring to_string() const noexcept override
Returns a string representation of the value of this instance in registry format.
int32_t compare_to(const guid &value) const noexcept override
Compares the current instance with another object of the same type.
int32_t compare_to(const object &obj) const noexcept override
Compares the current instance with another object of the same type.
guid(const ustring &guid)
Initializes a new instance of the xtd::guid structure by using the value represented by the specified...
guid(int32_t a, int32_t b, int32_t c, const std::vector< byte_t > &d)
Initializes a new instance of the xtd::guid structure by using the specified integers and byte array.
Contains xtd::ustring class.