Remove nfctestserver test application

It is realted to nfc socket streaming which we don't support at this
stage.

Change-Id: Idae80decad7aa2cdf7eb67b82ddc3e20384df8b8
Reviewed-by: Martin Leutelt <martin.leutelt@basyskom.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
This commit is contained in:
Alex Blasche 2014-10-01 14:32:50 +02:00
parent 7d1de5c312
commit e1045264c0
8 changed files with 0 additions and 609 deletions

View File

@ -1,54 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNfc module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtCore/QCoreApplication>
#include "socketcontroller.h"
#include "servercontroller.h"
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
// Connection oriented sockets
new ServerController(ServerController::StreamConnection, &app);
new ServerController(ServerController::DatagramConnection, &app);
new SocketController(SocketController::StreamConnection, &app);
new SocketController(SocketController::DatagramConnection, &app);
// Connectionless sockets
new SocketController(SocketController::BoundSocket, &app);
new SocketController(SocketController::ConnectionlessSocket, &app);
return app.exec();
}

View File

@ -1,21 +0,0 @@
INCLUDEPATH += $$PWD/../../src/nfc
TARGET = nfctestserver
CONFIG += console strict_flags
CONFIG -= app_bundle
QT = core nfc
TEMPLATE = app
SOURCES += main.cpp \
socketcontroller.cpp \
servercontroller.cpp
HEADERS += \
socketcontroller.h \
servercontroller.h \
servicenames.h
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0

View File

@ -1,151 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNfc module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "servercontroller.h"
#include "servicenames.h"
ServerController::ServerController(ConnectionType type, QObject *parent)
: QObject(parent), m_server(new QLlcpServer(this)), m_socket(0), m_connectionType(type)
{
connect(m_server, SIGNAL(newConnection()), this, SLOT(newConnection()));
switch (m_connectionType) {
case StreamConnection:
m_service = commandServer + streamSuffix;
break;
case DatagramConnection:
m_service = commandServer + datagramSuffix;
break;
}
m_server->listen(m_service);
if (m_server->isListening())
qDebug() << "Server listening on" << m_service;
}
ServerController::~ServerController()
{
delete m_socket;
delete m_server;
}
void ServerController::newConnection()
{
m_socket = m_server->nextPendingConnection();
qDebug() << "Server got new connection";
connect(m_socket, SIGNAL(readyRead()), this, SLOT(socketReadyRead()));
connect(m_socket, SIGNAL(bytesWritten(qint64)), this, SLOT(socketBytesWritten(qint64)));
connect(m_socket, SIGNAL(disconnected()), this, SLOT(socketDisconnected()));
}
void ServerController::socketReadyRead()
{
switch (m_connectionType) {
case StreamConnection:
while (m_socket->canReadLine()) {
const QByteArray line = m_socket->readLine().trimmed();
qDebug() << "Server read line:" << line;
QByteArray command;
QByteArray parameter;
int index = line.indexOf(' ');
if (index >= 0) {
command = line.left(index);
parameter = line.mid(index + 1);
} else {
command = line;
}
if (command == "ECHO") {
m_socket->write(parameter + '\n');
} else if (command == "DISCONNECT") {
m_socket->disconnectFromService();
break;
} else if (command == "CLOSE") {
m_socket->close();
break;
} else if (command == "URI") {
m_socket->write(m_service.toLatin1());
m_socket->write("\n");
}
}
break;
case DatagramConnection:
while (m_socket->hasPendingDatagrams()) {
qint64 size = m_socket->pendingDatagramSize();
QByteArray data;
data.resize(size);
m_socket->readDatagram(data.data(), data.size());
QByteArray command;
QByteArray parameter;
int index = data.indexOf(' ');
if (index >= 0) {
command = data.left(index);
parameter = data.mid(index + 1);
} else {
command = data;
}
if (command == "ECHO") {
m_socket->writeDatagram(parameter);
} else if (command == "DISCONNECT") {
m_socket->disconnectFromService();
break;
} else if (command == "CLOSE") {
m_socket->close();
break;
} else if (command == "URI") {
m_socket->writeDatagram(m_service.toLatin1());
}
}
break;
}
}
void ServerController::socketBytesWritten(qint64 bytes)
{
Q_UNUSED(bytes);
}
void ServerController::socketDisconnected()
{
m_socket->deleteLater();
m_socket = 0;
}

View File

@ -1,70 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNfc module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef SERVERCONTROLLER_H
#define SERVERCONTROLLER_H
#include <QtCore/QObject>
#include <qllcpserver_p.h>
QT_USE_NAMESPACE
class ServerController : public QObject
{
Q_OBJECT
public:
enum ConnectionType {
StreamConnection,
DatagramConnection
};
ServerController(ConnectionType type, QObject *parent = 0);
~ServerController();
private slots:
void newConnection();
void socketReadyRead();
void socketBytesWritten(qint64 bytes);
void socketDisconnected();
private:
QLlcpServer *m_server;
QLlcpSocket *m_socket;
ConnectionType m_connectionType;
QString m_service;
};
#endif // SERVERCONTROLLER_H

View File

@ -1,44 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNfc module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef SERVICENAMES_H
#define SERVICENAMES_H
static const QLatin1String commandServer("urn:nfc:sn:com.nokia.qt.commandserver");
static const QLatin1String helloServer("urn:nfc:sn:com.nokia.qt.helloserver");
static const QLatin1String streamSuffix(".stream");
static const QLatin1String datagramSuffix(".datagram");
static const quint8 boundSocketPort = 63;
#endif // SERVICENAMES_H

View File

@ -1,187 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNfc module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "socketcontroller.h"
#include "servicenames.h"
SocketController::SocketController(ConnectionType type, QObject *parent)
: QObject(parent), m_manager(0), m_socket(new QLlcpSocket(this)), m_connectionType(type),
m_timerId(-1)
{
connect(m_socket, SIGNAL(connected()), this, SLOT(connected()));
connect(m_socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
connect(m_socket, SIGNAL(error(QLlcpSocket::SocketError)),
this, SLOT(error(QLlcpSocket::SocketError)));
connect(m_socket, SIGNAL(stateChanged(QLlcpSocket::SocketState)),
this, SLOT(stateChanged(QLlcpSocket::SocketState)));
connect(m_socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
switch (m_connectionType) {
case StreamConnection:
m_service = helloServer + streamSuffix;
qDebug() << "Client connecting to" << m_service;
m_socket->connectToService(0, m_service);
break;
case DatagramConnection:
m_service = helloServer + datagramSuffix;
qDebug() << "Client connecting to" << m_service;
m_socket->connectToService(0, m_service);
break;
case BoundSocket:
m_port = boundSocketPort;
qDebug() << "Client binding to" << m_port;
if (!m_socket->bind(m_port))
qDebug() << "Failed to bind to port" << m_port;
break;
case ConnectionlessSocket:
qDebug() << "Client binding to arbitrary port";
if (!m_socket->bind(0)) {
qDebug() << "Failed to bind to arbitrary port";
} else {
m_manager = new QNearFieldManager(this);
connect(m_manager, SIGNAL(targetDetected(QNearFieldTarget*)),
this, SLOT(targetDetected(QNearFieldTarget*)));
connect(m_manager, SIGNAL(targetLost(QNearFieldTarget*)),
this, SLOT(targetLost(QNearFieldTarget*)));
m_manager->startTargetDetection();
}
break;
default:
qFatal("Unknown connection type");
}
}
SocketController::~SocketController()
{
delete m_socket;
}
void SocketController::connected()
{
qDebug() << "Client connected";
const QString data = QStringLiteral("HELLO ") + m_service;
switch (m_connectionType) {
case StreamConnection:
m_socket->write(data.toUtf8() + '\n');
break;
case DatagramConnection:
m_socket->writeDatagram(data.toUtf8());
break;
default:
;
}
}
void SocketController::disconnected()
{
qDebug() << "Client disconnected, reconnecting";
m_socket->connectToService(0, m_service);
}
void SocketController::error(QLlcpSocket::SocketError socketError)
{
qDebug() << "Client got error:" << socketError;
}
void SocketController::stateChanged(QLlcpSocket::SocketState socketState)
{
qDebug() << "Client state changed to" << socketState;
}
void SocketController::readyRead()
{
switch (m_connectionType) {
case StreamConnection:
while (m_socket->canReadLine()) {
const QByteArray line = m_socket->readLine().trimmed();
qDebug() << "Client read line:" << line;
if (line == "DISCONNECT") {
m_socket->disconnectFromService();
break;
} else if (line == "CLOSE") {
m_socket->close();
break;
}
}
break;
case DatagramConnection:
while (m_socket->hasPendingDatagrams()) {
qint64 size = m_socket->pendingDatagramSize();
QByteArray data;
data.resize(size);
m_socket->readDatagram(data.data(), data.size());
if (data == "DISCONNECT") {
m_socket->disconnectFromService();
break;
} else if (data == "CLOSE") {
m_socket->close();
break;
}
}
case BoundSocket:
case ConnectionlessSocket:
while (m_socket->hasPendingDatagrams()) {
qint64 size = m_socket->pendingDatagramSize();
QByteArray data;
data.resize(size);
m_socket->readDatagram(data.data(), data.size());
qDebug() << data;
}
}
}
void SocketController::targetDetected(QNearFieldTarget *target)
{
Q_UNUSED(target);
m_timerId = startTimer(500);
}
void SocketController::targetLost(QNearFieldTarget *target)
{
Q_UNUSED(target);
killTimer(m_timerId);
}
void SocketController::timerEvent(QTimerEvent *event)
{
Q_UNUSED(event);
m_socket->writeDatagram("Test message", 12, 0, boundSocketPort);
}

View File

@ -1,80 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNfc module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** 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 Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Digia gives you certain additional
** rights. These rights are described in the Digia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#ifndef SOCKETCONTROLLER_H
#define SOCKETCONTROLLER_H
#include <QtCore/QObject>
#include <qnearfieldmanager.h>
#include <qllcpsocket_p.h>
QT_USE_NAMESPACE
class SocketController : public QObject
{
Q_OBJECT
public:
enum ConnectionType {
StreamConnection,
DatagramConnection,
BoundSocket,
ConnectionlessSocket
};
SocketController(ConnectionType type, QObject *parent = 0);
~SocketController();
public slots:
void connected();
void disconnected();
void error(QLlcpSocket::SocketError socketError);
void stateChanged(QLlcpSocket::SocketState socketState);
void readyRead();
void targetDetected(QNearFieldTarget *target);
void targetLost(QNearFieldTarget *target);
protected:
void timerEvent(QTimerEvent *event);
private:
QNearFieldManager *m_manager;
QLlcpSocket *m_socket;
ConnectionType m_connectionType;
QString m_service;
quint8 m_port;
int m_timerId;
};
#endif // SOCKETCONTROLLER_H

View File

@ -2,5 +2,3 @@ TEMPLATE = subdirs
SUBDIRS += auto
qtHaveModule(bluetooth):qtHaveModule(quick): SUBDIRS += bttestui
qtHaveModule(nfc): SUBDIRS += nfctestserver