3#include "../../global.hpp"
4#include "../../string.hpp"
8#pragma warning(disable : 4800)
9#pragma warning(disable : 4251)
10#pragma warning(disable : 4244)
11#include <QHostAddress>
12#include <QRegularExpression>
29 explicit IpAddress(int64_t addr)
noexcept
31 address_ = QHostAddress((quint32)addr);
34 explicit IpAddress(
const String &addr)
noexcept
39 explicit IpAddress(
const QString &addr)
noexcept
41 address_ = QHostAddress(addr);
44 bool operator==(
const IpAddress &addr)
const noexcept
46 return (address_ == addr.address_);
49 bool operator!=(
const IpAddress &addr)
const noexcept
51 return !(*
this == addr);
61 return address_.toString();
66 return static_cast<int64_t
>(address_.toIPv4Address());
71 return !(ToInt64() == 0);
75 QHostAddress address_;
78 class MacAddress final
88 explicit MacAddress(int64_t addr)
noexcept
94 explicit MacAddress(
const String &addr) noexcept
101 explicit MacAddress(
const QString &addr) noexcept
107 bool operator==(
const MacAddress &addr)
const noexcept
109 return (address_ == addr.address_);
112 bool operator!=(
const MacAddress &addr)
const noexcept
114 return !(*
this == addr);
129 if (address_.isEmpty())
137 return !(ToInt64() == 0);
140 void SetDelimiter(
const MacDelimiter delimiter)
142 separator_ = delimiter;
145 MacDelimiter Delimiter()
153 QRegularExpression rx(macRegExp);
154 auto match = rx.match(address_);
155 if (!match.hasMatch())
156 address_ = defaultAddress_;
161 void ChangeSeparator()
163 if (address_.count(Separator()) == 5)
170 address_.replace(
'-',
':');
174 address_.replace(
':',
'-');
180 void Convert(int64_t value)
182 auto tmp = QString(
"%1").arg(value, 8, 16, QLatin1Char(
'0'));
183 auto pos = tmp.size() - 2;
187 tmp.insert(pos, Separator());
193 tmp.insert(0, Separator()).insert(0,
"00");
202 tmp.remove(
':').remove(
'-');
204 return static_cast<int64_t
>(tmp.toLongLong(&valid, 16));
209 if (separator_ == Colon)
215 const QString defaultAddress_ =
"00-00-00-00-00-00";
216 MacDelimiter separator_ = Minus;
217 const QString macRegExp =
"([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})";
Namespace for user interface components.
Definition decl_image_scene.hpp:39
Cvb::String QtToCvb(const QString text) noexcept
Convenience converter for strings.
Definition ui.hpp:242
QString CvbToQt(const Cvb::String &text) noexcept
Convenience converter for strings.
Definition ui.hpp:257
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::string String
String for wide characters or unicode characters.
Definition string.hpp:49