diff options
author | hjk <[email protected]> | 2022-07-27 12:38:07 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2022-07-27 12:07:59 +0000 |
commit | 072489829d9e32ce7b9f9e7c8c965bccf0e80266 (patch) | |
tree | 1ee7d50f1fd9784ca79b69389d1731fa07d71d9d /src | |
parent | df358c7833daf7ff0ef5931d9b53c6e6b6729639 (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.cpp | 18 | ||||
-rw-r--r-- | src/libs/utils/port.h | 47 | ||||
-rw-r--r-- | src/plugins/android/androiddevice.cpp | 5 | ||||
-rw-r--r-- | src/plugins/android/androidrunnerworker.h | 2 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolspreconfiguredsessiontests.cpp | 4 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolsutils.cpp | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runconfiguration.h | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runconfigurationaspects.cpp | 1 | ||||
-rw-r--r-- | src/plugins/python/pyside.cpp | 1 | ||||
-rw-r--r-- | src/plugins/qmlprojectmanager/qmlmainfileaspect.cpp | 1 |
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> |