From 072489829d9e32ce7b9f9e7c8c965bccf0e80266 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 27 Jul 2022 12:38:07 +0200 Subject: Utils: Make port.h slimmer Fix the fallout. Also make comparisons hidden friends. Change-Id: Ib16a294391f5732f94f9f411a48220b497691de2 Reviewed-by: Alessandro Portale Reviewed-by: --- src/libs/utils/port.cpp | 18 +++++++++ src/libs/utils/port.h | 47 +++++++++------------- src/plugins/android/androiddevice.cpp | 5 +-- src/plugins/android/androidrunnerworker.h | 2 + .../clangtoolspreconfiguredsessiontests.cpp | 4 +- src/plugins/clangtools/clangtoolsutils.cpp | 1 + src/plugins/projectexplorer/runconfiguration.h | 1 - .../projectexplorer/runconfigurationaspects.cpp | 1 + src/plugins/python/pyside.cpp | 1 + .../qmlprojectmanager/qmlmainfileaspect.cpp | 1 + 10 files changed, 47 insertions(+), 34 deletions(-) (limited to 'src') 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 + /*! \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::max()) ? -1 : port) +{ +} + +Port::Port(uint port) + : m_port(port > std::numeric_limits::max() ? -1 : port) +{ +} + +quint16 Port::number() const +{ + QTC_ASSERT(isValid(), return -1); return quint16(m_port); +} + QList Port::parseFromSedOutput(const QByteArray &output) { QList 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 #include #include -#include - 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::max()) ? -1 : port) - { - } - - explicit Port(uint port) : - m_port(port > std::numeric_limits::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 parseFromSedOutput(const QByteArray &output); static QList 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 #include +#include #include #include #include @@ -53,10 +54,8 @@ #include #include #include -#include #include - -#include +#include 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 +#include + #include 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 #include #include + #include -#include +#include +#include #include #include 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 #include #include +#include #include #include 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 #include #include -#include #include 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 #include #include +#include #include #include 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 #include +#include #include #include 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 #include #include +#include #include -- cgit v1.2.3