aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhjk <[email protected]>2022-07-27 12:38:07 +0200
committerhjk <[email protected]>2022-07-27 12:07:59 +0000
commit072489829d9e32ce7b9f9e7c8c965bccf0e80266 (patch)
tree1ee7d50f1fd9784ca79b69389d1731fa07d71d9d /src
parentdf358c7833daf7ff0ef5931d9b53c6e6b6729639 (diff)
Utils: Make port.h slimmer
Fix the fallout. Also make comparisons hidden friends. Change-Id: Ib16a294391f5732f94f9f411a48220b497691de2 Reviewed-by: Alessandro Portale <[email protected]> Reviewed-by: <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/port.cpp18
-rw-r--r--src/libs/utils/port.h47
-rw-r--r--src/plugins/android/androiddevice.cpp5
-rw-r--r--src/plugins/android/androidrunnerworker.h2
-rw-r--r--src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp4
-rw-r--r--src/plugins/clangtools/clangtoolsutils.cpp1
-rw-r--r--src/plugins/projectexplorer/runconfiguration.h1
-rw-r--r--src/plugins/projectexplorer/runconfigurationaspects.cpp1
-rw-r--r--src/plugins/python/pyside.cpp1
-rw-r--r--src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp1
10 files changed, 47 insertions, 34 deletions
diff --git a/src/libs/utils/port.cpp b/src/libs/utils/port.cpp
index 15a45f84244..e62a56bb0f0 100644
--- a/src/libs/utils/port.cpp
+++ b/src/libs/utils/port.cpp
@@ -25,8 +25,11 @@
#include "port.h"
+#include "qtcassert.h"
#include "stringutils.h"
+#include <limits>
+
/*! \class Utils::Port
\brief The Port class implements a wrapper around a 16 bit port number
@@ -35,6 +38,21 @@
namespace Utils {
+Port::Port(int port)
+ : m_port((port < 0 || port > std::numeric_limits<quint16>::max()) ? -1 : port)
+{
+}
+
+Port::Port(uint port)
+ : m_port(port > std::numeric_limits<quint16>::max() ? -1 : port)
+{
+}
+
+quint16 Port::number() const
+{
+ QTC_ASSERT(isValid(), return -1); return quint16(m_port);
+}
+
QList<Port> Port::parseFromSedOutput(const QByteArray &output)
{
QList<Port> ports;
diff --git a/src/libs/utils/port.h b/src/libs/utils/port.h
index 3d88d99328d..71c252c467a 100644
--- a/src/libs/utils/port.h
+++ b/src/libs/utils/port.h
@@ -27,14 +27,10 @@
#include "utils_global.h"
-#include "qtcassert.h"
-
#include <QMetaType>
#include <QList>
#include <QString>
-#include <limits>
-
namespace Utils {
class QTCREATOR_UTILS_EXPORT Port
@@ -42,17 +38,10 @@ class QTCREATOR_UTILS_EXPORT Port
public:
Port() = default;
explicit Port(quint16 port) : m_port(port) {}
- explicit Port(int port) :
- m_port((port < 0 || port > std::numeric_limits<quint16>::max()) ? -1 : port)
- {
- }
-
- explicit Port(uint port) :
- m_port(port > std::numeric_limits<quint16>::max() ? -1 : port)
- {
- }
+ explicit Port(int port);
+ explicit Port(uint port);
- quint16 number() const { QTC_ASSERT(isValid(), return -1); return quint16(m_port); }
+ quint16 number() const;
bool isValid() const { return m_port != -1; }
QString toString() const { return QString::number(m_port); }
@@ -60,24 +49,24 @@ public:
static QList<Port> parseFromSedOutput(const QByteArray &output);
static QList<Port> parseFromNetstatOutput(const QByteArray &output);
-private:
- int m_port = -1;
-};
+ friend bool operator<(const Port &p1, const Port &p2) { return p1.number() < p2.number(); }
+ friend bool operator<=(const Port &p1, const Port &p2) { return p1.number() <= p2.number(); }
+ friend bool operator>(const Port &p1, const Port &p2) { return p1.number() > p2.number(); }
+ friend bool operator>=(const Port &p1, const Port &p2) { return p1.number() >= p2.number(); }
-inline bool operator<(const Port &p1, const Port &p2) { return p1.number() < p2.number(); }
-inline bool operator<=(const Port &p1, const Port &p2) { return p1.number() <= p2.number(); }
-inline bool operator>(const Port &p1, const Port &p2) { return p1.number() > p2.number(); }
-inline bool operator>=(const Port &p1, const Port &p2) { return p1.number() >= p2.number(); }
+ friend bool operator==(const Port &p1, const Port &p2)
+ {
+ return p1.isValid() ? (p2.isValid() && p1.number() == p2.number()) : !p2.isValid();
+ }
-inline bool operator==(const Port &p1, const Port &p2)
-{
- return p1.isValid() ? (p2.isValid() && p1.number() == p2.number()) : !p2.isValid();
-}
+ friend bool operator!=(const Port &p1, const Port &p2)
+ {
+ return p1.isValid() ? (!p2.isValid() || p1.number() != p2.number()) : p2.isValid();
+ }
-inline bool operator!=(const Port &p1, const Port &p2)
-{
- return p1.isValid() ? (!p2.isValid() || p1.number() != p2.number()) : p2.isValid();
-}
+private:
+ int m_port = -1;
+};
} // Utils
diff --git a/src/plugins/android/androiddevice.cpp b/src/plugins/android/androiddevice.cpp
index 8fbd2402352..d525dad3657 100644
--- a/src/plugins/android/androiddevice.cpp
+++ b/src/plugins/android/androiddevice.cpp
@@ -43,6 +43,7 @@
#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
+#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/runextensions.h>
#include <utils/url.h>
@@ -53,10 +54,8 @@
#include <QLoggingCategory>
#include <QMessageBox>
#include <QPushButton>
-#include <QTimer>
#include <QRegularExpression>
-
-#include <utils/qtcprocess.h>
+#include <QTimer>
using namespace ProjectExplorer;
using namespace Utils;
diff --git a/src/plugins/android/androidrunnerworker.h b/src/plugins/android/androidrunnerworker.h
index f4ceb9e8caa..948b7335c7c 100644
--- a/src/plugins/android/androidrunnerworker.h
+++ b/src/plugins/android/androidrunnerworker.h
@@ -30,6 +30,8 @@
#include <qmldebug/qmldebugcommandlinearguments.h>
+#include <utils/port.h>
+
#include <QFuture>
namespace Android {
diff --git a/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp b/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp
index 9dc9a4f90b7..b87a279f256 100644
--- a/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp
+++ b/src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp
@@ -39,8 +39,10 @@
#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
#include <projectexplorer/toolchain.h>
+
#include <utils/algorithm.h>
-#include <utils/fileutils.h>
+#include <utils/filepath.h>
+#include <utils/qtcassert.h>
#include <QSignalSpy>
#include <QElapsedTimer>
diff --git a/src/plugins/clangtools/clangtoolsutils.cpp b/src/plugins/clangtools/clangtoolsutils.cpp
index 83a10245355..0586faae912 100644
--- a/src/plugins/clangtools/clangtoolsutils.cpp
+++ b/src/plugins/clangtools/clangtoolsutils.cpp
@@ -39,6 +39,7 @@
#include <utils/environment.h>
#include <utils/filepath.h>
#include <utils/hostosinfo.h>
+#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <cppeditor/clangdiagnosticconfigsmodel.h>
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 318fafae329..8169a5e9c3c 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -32,7 +32,6 @@
#include <utils/aspects.h>
#include <utils/environment.h>
#include <utils/macroexpander.h>
-#include <utils/port.h>
#include <QWidget>
diff --git a/src/plugins/projectexplorer/runconfigurationaspects.cpp b/src/plugins/projectexplorer/runconfigurationaspects.cpp
index d927aaeddfe..69c9c3d698a 100644
--- a/src/plugins/projectexplorer/runconfigurationaspects.cpp
+++ b/src/plugins/projectexplorer/runconfigurationaspects.cpp
@@ -40,6 +40,7 @@
#include <utils/fancylineedit.h>
#include <utils/layoutbuilder.h>
#include <utils/pathchooser.h>
+#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/utilsicons.h>
diff --git a/src/plugins/python/pyside.cpp b/src/plugins/python/pyside.cpp
index b382ede0b5b..0eb6e5761a6 100644
--- a/src/plugins/python/pyside.cpp
+++ b/src/plugins/python/pyside.cpp
@@ -42,6 +42,7 @@
#include <utils/algorithm.h>
#include <utils/infobar.h>
+#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/runextensions.h>
diff --git a/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp b/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp
index 8a52a6b63cc..d2db23f9d08 100644
--- a/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp
@@ -40,6 +40,7 @@
#include <utils/algorithm.h>
#include <utils/layoutbuilder.h>
#include <utils/mimeutils.h>
+#include <utils/qtcassert.h>
#include <QComboBox>