From 7345cc309c2652fd8c9e47af7dd48439c3f4e1f4 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 28 Jan 2016 11:05:23 +0100 Subject: [PATCH] Utils: Introduce a 'Port' class To be used as type safe wrapper around a 16 bit port number. Change-Id: I20a26be69e8b6b7dc9a7975fbe41c76ef89afbea Reviewed-by: Eike Ziller --- src/libs/utils/port.cpp | 32 ++++++++++++++++++++++++ src/libs/utils/port.h | 48 ++++++++++++++++++++++++++++++++++++ src/libs/utils/utils-lib.pri | 6 +++-- src/libs/utils/utils.qbs | 2 ++ 4 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/libs/utils/port.cpp create mode 100644 src/libs/utils/port.h diff --git a/src/libs/utils/port.cpp b/src/libs/utils/port.cpp new file mode 100644 index 00000000000..c4f3af18888 --- /dev/null +++ b/src/libs/utils/port.cpp @@ -0,0 +1,32 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "port.h" + +/*! \class Utils::Port + + \brief The Port class implements a wrapper around a 16 bit port number + to be used in conjunction with IP addresses. +*/ diff --git a/src/libs/utils/port.h b/src/libs/utils/port.h new file mode 100644 index 00000000000..1fe429aa11e --- /dev/null +++ b/src/libs/utils/port.h @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#ifndef UTILS_PORT_H +#define UTILS_PORT_H + +#include "utils_global.h" + +namespace Utils { + +class QTCREATOR_UTILS_EXPORT Port +{ +public: + Port() : m_port(-1) {} + explicit Port(quint16 port) : m_port(port) {} + + quint16 number() const { return quint16(m_port); } + bool isValid() const { return m_port != -1; } + +private: + int m_port; +}; + +} // Utils + +#endif // UTILS_PORT_H diff --git a/src/libs/utils/utils-lib.pri b/src/libs/utils/utils-lib.pri index 14699830765..015cc32b99b 100644 --- a/src/libs/utils/utils-lib.pri +++ b/src/libs/utils/utils-lib.pri @@ -98,7 +98,8 @@ SOURCES += $$PWD/environment.cpp \ $$PWD/overridecursor.cpp \ $$PWD/categorysortfiltermodel.cpp \ $$PWD/dropsupport.cpp \ - $$PWD/icon.cpp + $$PWD/icon.cpp \ + $$PWD/port.cpp win32:SOURCES += $$PWD/consoleprocess_win.cpp else:SOURCES += $$PWD/consoleprocess_unix.cpp @@ -205,7 +206,8 @@ HEADERS += \ $$PWD/categorysortfiltermodel.h \ $$PWD/dropsupport.h \ $$PWD/utilsicons.h \ - $$PWD/icon.h + $$PWD/icon.h \ + $$PWD/port.h FORMS += $$PWD/filewizardpage.ui \ $$PWD/projectintropage.ui \ diff --git a/src/libs/utils/utils.qbs b/src/libs/utils/utils.qbs index 1b54a7b0385..3978ff127b6 100644 --- a/src/libs/utils/utils.qbs +++ b/src/libs/utils/utils.qbs @@ -144,6 +144,8 @@ QtcLibrary { "pathlisteditor.h", "persistentsettings.cpp", "persistentsettings.h", + "port.cpp", + "port.h", "portlist.cpp", "portlist.h", "progressindicator.cpp",