Heart
1.4.918.d927d9c
Heart is base back end library for your c++ Qt projects.
Toggle main menu visibility
Loading...
Searching...
No Matches
hostaddress.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2018-2025 QuasarApp.
3
* Distributed under the lgplv3 software license, see the accompanying
4
* Everyone is permitted to copy and distribute verbatim copies
5
* of this license document, but changing it is not allowed.
6
*/
7
8
9
#include "
hostaddress.h
"
10
#include <QDataStream>
11
#include <quasarapp.h>
12
namespace
QH
{
13
14
HostAddress::HostAddress
() {
15
16
}
17
18
HostAddress::HostAddress
(
const
QHostAddress &other,
int
port
):
19
QHostAddress(other) {
20
setPort
(
port
);
21
}
22
23
HostAddress::HostAddress
(
const
QString &other,
int
port
):
24
QHostAddress(other) {
25
setPort
(
port
);
26
}
27
28
HostAddress::HostAddress
(
const
SpecialAddress &other,
int
port
):
29
QHostAddress(other) {
30
setPort
(
port
);
31
}
32
33
HostAddress::HostAddress
(
const
HostAddress
&other) {
34
operator=
(other);
35
}
36
37
unsigned
short
HostAddress::port
()
const
{
38
return
_port;
39
}
40
41
void
HostAddress::setPort
(
unsigned
short
port
) {
42
_port =
port
;
43
}
44
45
HostAddress
&
HostAddress::operator =
(
const
HostAddress
&right) {
46
QHostAddress::operator=(*
static_cast<
const
QHostAddress*
>
(&right));
47
setPort
(right.
port
());
48
49
return
*
this
;
50
}
51
52
bool
HostAddress::isIP
(
const
QString &address) {
53
return
!QHostAddress{address}.isNull();
54
}
55
56
bool
HostAddress::isValid
()
const
{
57
return
!isNull() &&
port
();
58
}
59
60
QString
HostAddress::toString
()
const
{
61
return
QHostAddress::toString() +
":"
+ QString::number(
port
());
62
}
63
64
QByteArray
HostAddress::toBytes
()
const
{
65
QByteArray res;
66
QDataStream stream(&res, QIODevice::WriteOnly);
67
operator <<
(stream, *
this
);
68
return
res;
69
}
70
71
bool
HostAddress::fromBytes
(
const
QByteArray &array) {
72
if
(array.isEmpty())
73
return
false
;
74
75
QDataStream stream(array);
76
operator >>
(stream, *
this
);
77
return
true
;
78
}
79
80
QDataStream &
operator >>
(QDataStream &stream,
HostAddress
&address) {
81
stream >>
static_cast<
QHostAddress&
>
(address);
82
stream >> address._port;
83
84
return
stream;
85
}
86
87
QDataStream &
operator <<
(QDataStream &stream,
const
HostAddress
&address) {
88
89
stream << static_cast<const QHostAddress&>(address);
90
stream << address._port;
91
92
return
stream;
93
}
94
95
#define base(obj) static_cast<const QHostAddress*>(&obj)
96
bool
operator ==
(
const
HostAddress
&left,
const
HostAddress
&right) {
97
return
base
(left)->operator==(*
base
(right)) && left.
port
() == right.
port
();
98
}
99
100
bool
operator !=
(
const
HostAddress
&left,
const
HostAddress
&right) {
101
return
base
(left)->operator!=(*
base
(right)) && left.
port
() != right.
port
();
102
}
103
104
uint
qHash
(
const
HostAddress
&address) {
105
106
if
(QHostAddress(address.toIPv4Address()).operator==(QHostAddress::LocalHost) ||
107
QHostAddress(address.toIPv6Address()).operator==(QHostAddress::LocalHostIPv6)) {
108
return
qHash
(QString(
"%1:%2"
).arg(address.
toString
()).arg(address.
port
()));
109
}
110
111
return
qHash
(*
static_cast<
const
QHostAddress*
>
(&address));
112
}
113
114
}
QH::HostAddress
The Host Address class this is wrapper of QHostAddress. Contains the NetworkAddress and network port.
Definition
hostaddress.h:22
QH::HostAddress::operator<<
friend QDataStream & operator<<(QDataStream &stream, const HostAddress &address)
Definition
hostaddress.cpp:87
QH::HostAddress::toBytes
QByteArray toBytes() const
toBytes This method convert a network address to a byte array.
Definition
hostaddress.cpp:64
QH::HostAddress::operator>>
friend QDataStream & operator>>(QDataStream &stream, HostAddress &address)
Definition
hostaddress.cpp:80
QH::HostAddress::HostAddress
HostAddress()
Definition
hostaddress.cpp:14
QH::HostAddress::operator=
HostAddress & operator=(const HostAddress &right)
Definition
hostaddress.cpp:45
QH::HostAddress::port
unsigned short port() const
The port method return port of node.
Definition
hostaddress.cpp:37
QH::HostAddress::toString
QString toString() const
toString this method convert the Host Address value to string value.
Definition
hostaddress.cpp:60
QH::HostAddress::setPort
void setPort(unsigned short port)
setPort This method set new port value.
Definition
hostaddress.cpp:41
QH::HostAddress::isValid
bool isValid() const
isValid This method return true if the current network address is valid.
Definition
hostaddress.cpp:56
QH::HostAddress::fromBytes
bool fromBytes(const QByteArray &array)
fromBytes This method applay array obejct. (conver a byte array to a newtwork address object)
Definition
hostaddress.cpp:71
QH::HostAddress::isIP
static bool isIP(const QString &address)
isIP This method return true if the address is valid.
Definition
hostaddress.cpp:52
base
#define base(obj)
Definition
hostaddress.cpp:95
hostaddress.h
QH
The QH namespace - QuasarApp Heart namespace. This namespace contains all classes of the Heart librar...
Definition
heart.cpp:13
QH::operator>>
QDataStream & operator>>(QDataStream &stream, HostAddress &address)
Definition
hostaddress.cpp:80
QH::operator!=
bool operator!=(const DbAddress &left, const DbAddress &other)
Definition
dbaddress.cpp:50
QH::qHash
uint qHash(NodeCoonectionStatus status)
qHash - Simple hash function of NodeCoonectionStatus
Definition
abstractnodeinfo.cpp:269
QH::operator==
bool operator==(const DbAddress &left, const DbAddress &other)
Definition
dbaddress.cpp:27
QH::operator<<
QDataStream & operator<<(QDataStream &stream, const HostAddress &address)
Definition
hostaddress.cpp:87
src
public
hostaddress.cpp
Generated by
1.18.0