summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-07-11 12:33:40 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-07-15 08:20:16 +0000
commitbcb847285171cf63abe24f27c54fc309c54a4696 (patch)
tree16dc4f8cc53066a02d4616b1e7505c6b958f95f9
parentfbb174127c8f6a5c74db1d4d85e43e8467a16f1c (diff)
downloadqtserialport-bcb847285171cf63abe24f27c54fc309c54a4696.tar.gz
QSerialPortInfo: Extract Method anyOfPort
Change-Id: Ic0851ee8d491f29922d55f3c0530ccd21ed171a5 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r--src/serialport/qserialportinfo_win.cpp33
1 files changed, 11 insertions, 22 deletions
diff --git a/src/serialport/qserialportinfo_win.cpp b/src/serialport/qserialportinfo_win.cpp
index 398666e..1bab3e9 100644
--- a/src/serialport/qserialportinfo_win.cpp
+++ b/src/serialport/qserialportinfo_win.cpp
@@ -187,23 +187,6 @@ static QString devicePortName(HDEVINFO deviceInfoSet, PSP_DEVINFO_DATA deviceInf
return portName;
}
-class SerialPortNameEqualFunctor
-{
-public:
- explicit SerialPortNameEqualFunctor(const QString &serialPortName)
- : m_serialPortName(serialPortName)
- {
- }
-
- bool operator() (const QSerialPortInfo &serialPortInfo) const
- {
- return serialPortInfo.portName() == m_serialPortName;
- }
-
-private:
- const QString &m_serialPortName;
-};
-
static QString deviceDescription(HDEVINFO deviceInfoSet,
PSP_DEVINFO_DATA deviceInfoData)
{
@@ -288,6 +271,15 @@ static QString deviceSerialNumber(QString instanceIdentifier,
return QString();
}
+static bool anyOfPorts(const QList<QSerialPortInfo> &ports, const QString &portName)
+{
+ const auto end = ports.end();
+ auto isPortNamesEquals = [&portName](const QSerialPortInfo &portInfo) {
+ return portInfo.portName() == portName;
+ };
+ return std::find_if(ports.begin(), end, isPortNamesEquals) != end;
+}
+
QList<QSerialPortInfo> QSerialPortInfo::availablePorts()
{
static const struct {
@@ -318,10 +310,8 @@ QList<QSerialPortInfo> QSerialPortInfo::availablePorts()
if (portName.isEmpty() || portName.contains(QLatin1String("LPT")))
continue;
- if (std::find_if(serialPortInfoList.begin(), serialPortInfoList.end(),
- SerialPortNameEqualFunctor(portName)) != serialPortInfoList.end()) {
+ if (anyOfPorts(serialPortInfoList, portName))
continue;
- }
QSerialPortInfoPrivate priv;
@@ -346,8 +336,7 @@ QList<QSerialPortInfo> QSerialPortInfo::availablePorts()
const auto portNames = portNamesFromHardwareDeviceMap();
for (const QString &portName : portNames) {
- if (std::find_if(serialPortInfoList.cbegin(), serialPortInfoList.cend(),
- SerialPortNameEqualFunctor(portName)) == serialPortInfoList.cend()) {
+ if (!anyOfPorts(serialPortInfoList, portName)) {
QSerialPortInfoPrivate priv;
priv.portName = portName;
priv.device = QSerialPortInfoPrivate::portNameToSystemLocation(portName);