project structure created
This commit is contained in:
commit
ebcabda682
9
hive/.gitignore
vendored
Normal file
9
hive/.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
.directory
|
||||||
|
*.user
|
||||||
|
*~
|
||||||
|
Makefile
|
||||||
|
build
|
||||||
|
moc
|
||||||
|
.make.cache
|
||||||
|
rcc
|
||||||
|
|
||||||
3
hive/client/client.pro
Normal file
3
hive/client/client.pro
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
|
SUBDIRS += hive hive_pi
|
||||||
11
hive/client/hive_client/hive_client.desktop
Normal file
11
hive/client/hive_client/hive_client.desktop
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Terminal=false
|
||||||
|
Name=hive_client
|
||||||
|
Exec=/opt/hive_client/bin/hive_client
|
||||||
|
Icon=hive_client64
|
||||||
|
X-Window-Icon=
|
||||||
|
X-HildonDesk-ShowInToolbar=true
|
||||||
|
X-Osso-Type=application/x-executable
|
||||||
22
hive/client/hive_client/hive_client.pro
Normal file
22
hive/client/hive_client/hive_client.pro
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Add more folders to ship with the application, here
|
||||||
|
folder_01.source = qml/hive_client
|
||||||
|
folder_01.target = qml
|
||||||
|
DEPLOYMENTFOLDERS = folder_01
|
||||||
|
|
||||||
|
# Additional import path used to resolve QML modules in Creator's code model
|
||||||
|
QML_IMPORT_PATH =
|
||||||
|
|
||||||
|
# If your application uses the Qt Mobility libraries, uncomment the following
|
||||||
|
# lines and add the respective components to the MOBILITY variable.
|
||||||
|
# CONFIG += mobility
|
||||||
|
# MOBILITY +=
|
||||||
|
|
||||||
|
# The .cpp file which was generated for your project. Feel free to hack it.
|
||||||
|
SOURCES += main.cpp
|
||||||
|
|
||||||
|
# Installation path
|
||||||
|
# target.path =
|
||||||
|
|
||||||
|
# Please do not modify the following two lines. Required for deployment.
|
||||||
|
include(qtquick2applicationviewer/qtquick2applicationviewer.pri)
|
||||||
|
qtcAddDeployment()
|
||||||
BIN
hive/client/hive_client/hive_client64.png
Normal file
BIN
hive/client/hive_client/hive_client64.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
BIN
hive/client/hive_client/hive_client80.png
Normal file
BIN
hive/client/hive_client/hive_client80.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
11
hive/client/hive_client/hive_client_harmattan.desktop
Normal file
11
hive/client/hive_client/hive_client_harmattan.desktop
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Terminal=false
|
||||||
|
Name=hive_client
|
||||||
|
Exec=/usr/bin/single-instance /opt/hive_client/bin/hive_client
|
||||||
|
Icon=/usr/share/icons/hicolor/80x80/apps/hive_client80.png
|
||||||
|
X-Window-Icon=
|
||||||
|
X-HildonDesk-ShowInToolbar=true
|
||||||
|
X-Osso-Type=application/x-executable
|
||||||
13
hive/client/hive_client/main.cpp
Normal file
13
hive/client/hive_client/main.cpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include <QtGui/QGuiApplication>
|
||||||
|
#include "qtquick2applicationviewer.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QGuiApplication app(argc, argv);
|
||||||
|
|
||||||
|
QtQuick2ApplicationViewer viewer;
|
||||||
|
viewer.setMainQmlFile(QStringLiteral("qml/hive_client/main.qml"));
|
||||||
|
viewer.showExpanded();
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
16
hive/client/hive_client/qml/hive_client/main.qml
Normal file
16
hive/client/hive_client/qml/hive_client/main.qml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 360
|
||||||
|
height: 360
|
||||||
|
Text {
|
||||||
|
text: qsTr("Hello World")
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
Qt.quit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,81 @@
|
|||||||
|
// checksum 0x4f6f version 0x90005
|
||||||
|
/*
|
||||||
|
This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
|
||||||
|
QtQuick2ApplicationViewer is a convenience class containing mobile device specific
|
||||||
|
code such as screen orientation handling. Also QML paths and debugging are
|
||||||
|
handled here.
|
||||||
|
It is recommended not to modify this file, since newer versions of Qt Creator
|
||||||
|
may offer an updated version of it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "qtquick2applicationviewer.h"
|
||||||
|
|
||||||
|
#include <QtCore/QCoreApplication>
|
||||||
|
#include <QtCore/QDir>
|
||||||
|
#include <QtQml/QQmlEngine>
|
||||||
|
|
||||||
|
class QtQuick2ApplicationViewerPrivate
|
||||||
|
{
|
||||||
|
QString mainQmlFile;
|
||||||
|
friend class QtQuick2ApplicationViewer;
|
||||||
|
static QString adjustPath(const QString &path);
|
||||||
|
};
|
||||||
|
|
||||||
|
QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
|
||||||
|
{
|
||||||
|
#if defined(Q_OS_MAC)
|
||||||
|
if (!QDir::isAbsolutePath(path))
|
||||||
|
return QString::fromLatin1("%1/../Resources/%2")
|
||||||
|
.arg(QCoreApplication::applicationDirPath(), path);
|
||||||
|
#elif defined(Q_OS_BLACKBERRY)
|
||||||
|
if (!QDir::isAbsolutePath(path))
|
||||||
|
return QString::fromLatin1("app/native/%1").arg(path);
|
||||||
|
#elif !defined(Q_OS_ANDROID)
|
||||||
|
QString pathInInstallDir =
|
||||||
|
QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
|
||||||
|
if (QFileInfo(pathInInstallDir).exists())
|
||||||
|
return pathInInstallDir;
|
||||||
|
pathInInstallDir =
|
||||||
|
QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
|
||||||
|
if (QFileInfo(pathInInstallDir).exists())
|
||||||
|
return pathInInstallDir;
|
||||||
|
#endif
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
|
QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent)
|
||||||
|
: QQuickView(parent)
|
||||||
|
, d(new QtQuick2ApplicationViewerPrivate())
|
||||||
|
{
|
||||||
|
connect(engine(), SIGNAL(quit()), SLOT(close()));
|
||||||
|
setResizeMode(QQuickView::SizeRootObjectToView);
|
||||||
|
}
|
||||||
|
|
||||||
|
QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer()
|
||||||
|
{
|
||||||
|
delete d;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file)
|
||||||
|
{
|
||||||
|
d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
|
||||||
|
#ifdef Q_OS_ANDROID
|
||||||
|
setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
|
||||||
|
#else
|
||||||
|
setSource(QUrl::fromLocalFile(d->mainQmlFile));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void QtQuick2ApplicationViewer::addImportPath(const QString &path)
|
||||||
|
{
|
||||||
|
engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QtQuick2ApplicationViewer::showExpanded()
|
||||||
|
{
|
||||||
|
#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX)
|
||||||
|
showFullScreen();
|
||||||
|
#else
|
||||||
|
show();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
// checksum 0xfde6 version 0x90005
|
||||||
|
/*
|
||||||
|
This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
|
||||||
|
QtQuick2ApplicationViewer is a convenience class containing mobile device specific
|
||||||
|
code such as screen orientation handling. Also QML paths and debugging are
|
||||||
|
handled here.
|
||||||
|
It is recommended not to modify this file, since newer versions of Qt Creator
|
||||||
|
may offer an updated version of it.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef QTQUICK2APPLICATIONVIEWER_H
|
||||||
|
#define QTQUICK2APPLICATIONVIEWER_H
|
||||||
|
|
||||||
|
#include <QtQuick/QQuickView>
|
||||||
|
|
||||||
|
class QtQuick2ApplicationViewer : public QQuickView
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit QtQuick2ApplicationViewer(QWindow *parent = 0);
|
||||||
|
virtual ~QtQuick2ApplicationViewer();
|
||||||
|
|
||||||
|
void setMainQmlFile(const QString &file);
|
||||||
|
void addImportPath(const QString &path);
|
||||||
|
|
||||||
|
void showExpanded();
|
||||||
|
|
||||||
|
private:
|
||||||
|
class QtQuick2ApplicationViewerPrivate *d;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // QTQUICK2APPLICATIONVIEWER_H
|
||||||
@ -0,0 +1,180 @@
|
|||||||
|
# checksum 0x7b0d version 0x90005
|
||||||
|
# This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
|
||||||
|
# The code below adds the QtQuick2ApplicationViewer to the project and handles
|
||||||
|
# the activation of QML debugging.
|
||||||
|
# It is recommended not to modify this file, since newer versions of Qt Creator
|
||||||
|
# may offer an updated version of it.
|
||||||
|
|
||||||
|
QT += qml quick
|
||||||
|
|
||||||
|
SOURCES += $$PWD/qtquick2applicationviewer.cpp
|
||||||
|
HEADERS += $$PWD/qtquick2applicationviewer.h
|
||||||
|
INCLUDEPATH += $$PWD
|
||||||
|
# This file was generated by an application wizard of Qt Creator.
|
||||||
|
# The code below handles deployment to Android and Maemo, aswell as copying
|
||||||
|
# of the application data to shadow build directories on desktop.
|
||||||
|
# It is recommended not to modify this file, since newer versions of Qt Creator
|
||||||
|
# may offer an updated version of it.
|
||||||
|
|
||||||
|
defineTest(qtcAddDeployment) {
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
item = item$${deploymentfolder}
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||||
|
itemsources = $${item}.files
|
||||||
|
} else {
|
||||||
|
itemsources = $${item}.sources
|
||||||
|
}
|
||||||
|
$$itemsources = $$eval($${deploymentfolder}.source)
|
||||||
|
itempath = $${item}.path
|
||||||
|
$$itempath= $$eval($${deploymentfolder}.target)
|
||||||
|
export($$itemsources)
|
||||||
|
export($$itempath)
|
||||||
|
DEPLOYMENT += $$item
|
||||||
|
}
|
||||||
|
|
||||||
|
MAINPROFILEPWD = $$PWD
|
||||||
|
|
||||||
|
android-no-sdk {
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
item = item$${deploymentfolder}
|
||||||
|
itemfiles = $${item}.files
|
||||||
|
$$itemfiles = $$eval($${deploymentfolder}.source)
|
||||||
|
itempath = $${item}.path
|
||||||
|
$$itempath = /data/user/qt/$$eval($${deploymentfolder}.target)
|
||||||
|
export($$itemfiles)
|
||||||
|
export($$itempath)
|
||||||
|
INSTALLS += $$item
|
||||||
|
}
|
||||||
|
|
||||||
|
target.path = /data/user/qt
|
||||||
|
|
||||||
|
export(target.path)
|
||||||
|
INSTALLS += target
|
||||||
|
} else:android {
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
item = item$${deploymentfolder}
|
||||||
|
itemfiles = $${item}.files
|
||||||
|
$$itemfiles = $$eval($${deploymentfolder}.source)
|
||||||
|
itempath = $${item}.path
|
||||||
|
$$itempath = /assets/$$eval($${deploymentfolder}.target)
|
||||||
|
export($$itemfiles)
|
||||||
|
export($$itempath)
|
||||||
|
INSTALLS += $$item
|
||||||
|
}
|
||||||
|
|
||||||
|
x86 {
|
||||||
|
target.path = /libs/x86
|
||||||
|
} else: armeabi-v7a {
|
||||||
|
target.path = /libs/armeabi-v7a
|
||||||
|
} else {
|
||||||
|
target.path = /libs/armeabi
|
||||||
|
}
|
||||||
|
|
||||||
|
export(target.path)
|
||||||
|
INSTALLS += target
|
||||||
|
} else:win32 {
|
||||||
|
copyCommand =
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
|
||||||
|
source = $$replace(source, /, \\)
|
||||||
|
sourcePathSegments = $$split(source, \\)
|
||||||
|
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
|
||||||
|
target = $$replace(target, /, \\)
|
||||||
|
target ~= s,\\\\\\.?\\\\,\\,
|
||||||
|
!isEqual(source,$$target) {
|
||||||
|
!isEmpty(copyCommand):copyCommand += &&
|
||||||
|
isEqual(QMAKE_DIR_SEP, \\) {
|
||||||
|
copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
|
||||||
|
} else {
|
||||||
|
source = $$replace(source, \\\\, /)
|
||||||
|
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
|
||||||
|
target = $$replace(target, \\\\, /)
|
||||||
|
copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
!isEmpty(copyCommand) {
|
||||||
|
copyCommand = @echo Copying application data... && $$copyCommand
|
||||||
|
copydeploymentfolders.commands = $$copyCommand
|
||||||
|
first.depends = $(first) copydeploymentfolders
|
||||||
|
export(first.depends)
|
||||||
|
export(copydeploymentfolders.commands)
|
||||||
|
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
|
||||||
|
}
|
||||||
|
} else:unix {
|
||||||
|
maemo5 {
|
||||||
|
desktopfile.files = $${TARGET}.desktop
|
||||||
|
desktopfile.path = /usr/share/applications/hildon
|
||||||
|
icon.files = $${TARGET}64.png
|
||||||
|
icon.path = /usr/share/icons/hicolor/64x64/apps
|
||||||
|
} else:!isEmpty(MEEGO_VERSION_MAJOR) {
|
||||||
|
desktopfile.files = $${TARGET}_harmattan.desktop
|
||||||
|
desktopfile.path = /usr/share/applications
|
||||||
|
icon.files = $${TARGET}80.png
|
||||||
|
icon.path = /usr/share/icons/hicolor/80x80/apps
|
||||||
|
} else { # Assumed to be a Desktop Unix
|
||||||
|
copyCommand =
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
|
||||||
|
source = $$replace(source, \\\\, /)
|
||||||
|
macx {
|
||||||
|
target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
|
||||||
|
} else {
|
||||||
|
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
|
||||||
|
}
|
||||||
|
target = $$replace(target, \\\\, /)
|
||||||
|
sourcePathSegments = $$split(source, /)
|
||||||
|
targetFullPath = $$target/$$last(sourcePathSegments)
|
||||||
|
targetFullPath ~= s,/\\.?/,/,
|
||||||
|
!isEqual(source,$$targetFullPath) {
|
||||||
|
!isEmpty(copyCommand):copyCommand += &&
|
||||||
|
copyCommand += $(MKDIR) \"$$target\"
|
||||||
|
copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
!isEmpty(copyCommand) {
|
||||||
|
copyCommand = @echo Copying application data... && $$copyCommand
|
||||||
|
copydeploymentfolders.commands = $$copyCommand
|
||||||
|
first.depends = $(first) copydeploymentfolders
|
||||||
|
export(first.depends)
|
||||||
|
export(copydeploymentfolders.commands)
|
||||||
|
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
|
||||||
|
}
|
||||||
|
}
|
||||||
|
!isEmpty(target.path) {
|
||||||
|
installPrefix = $${target.path}
|
||||||
|
} else {
|
||||||
|
installPrefix = /opt/$${TARGET}
|
||||||
|
}
|
||||||
|
for(deploymentfolder, DEPLOYMENTFOLDERS) {
|
||||||
|
item = item$${deploymentfolder}
|
||||||
|
itemfiles = $${item}.files
|
||||||
|
$$itemfiles = $$eval($${deploymentfolder}.source)
|
||||||
|
itempath = $${item}.path
|
||||||
|
$$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
|
||||||
|
export($$itemfiles)
|
||||||
|
export($$itempath)
|
||||||
|
INSTALLS += $$item
|
||||||
|
}
|
||||||
|
|
||||||
|
!isEmpty(desktopfile.path) {
|
||||||
|
export(icon.files)
|
||||||
|
export(icon.path)
|
||||||
|
export(desktopfile.files)
|
||||||
|
export(desktopfile.path)
|
||||||
|
INSTALLS += icon desktopfile
|
||||||
|
}
|
||||||
|
|
||||||
|
isEmpty(target.path) {
|
||||||
|
target.path = $${installPrefix}/bin
|
||||||
|
export(target.path)
|
||||||
|
}
|
||||||
|
INSTALLS += target
|
||||||
|
}
|
||||||
|
|
||||||
|
export (ICON)
|
||||||
|
export (INSTALLS)
|
||||||
|
export (DEPLOYMENT)
|
||||||
|
export (LIBS)
|
||||||
|
export (QMAKE_EXTRA_TARGETS)
|
||||||
|
}
|
||||||
5
hive/hive.pro
Normal file
5
hive/hive.pro
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
TEMPLATE = subdirs
|
||||||
|
CONFIG = ordered
|
||||||
|
|
||||||
|
SUBDIRS += libhive server \
|
||||||
|
client/hive_client
|
||||||
6
hive/libhive/libhive.cpp
Normal file
6
hive/libhive/libhive.cpp
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include "libhive.h"
|
||||||
|
|
||||||
|
|
||||||
|
Libhive::Libhive()
|
||||||
|
{
|
||||||
|
}
|
||||||
13
hive/libhive/libhive.h
Normal file
13
hive/libhive/libhive.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef LIBHIVE_H
|
||||||
|
#define LIBHIVE_H
|
||||||
|
|
||||||
|
#include "libhive_global.h"
|
||||||
|
|
||||||
|
class LIBHIVESHARED_EXPORT Libhive
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
Libhive();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LIBHIVE_H
|
||||||
28
hive/libhive/libhive.pro
Normal file
28
hive/libhive/libhive.pro
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#-------------------------------------------------
|
||||||
|
#
|
||||||
|
# Project created by QtCreator 2013-08-11T20:58:11
|
||||||
|
#
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
QT += widgets declarative qml quick network dbus
|
||||||
|
|
||||||
|
TARGET = libhive
|
||||||
|
TEMPLATE = lib
|
||||||
|
|
||||||
|
DEFINES += LIBHIVE_LIBRARY
|
||||||
|
|
||||||
|
SOURCES += libhive.cpp \
|
||||||
|
server.cpp
|
||||||
|
|
||||||
|
HEADERS += libhive.h\
|
||||||
|
libhive_global.h \
|
||||||
|
server.h
|
||||||
|
|
||||||
|
unix:!symbian {
|
||||||
|
maemo5 {
|
||||||
|
target.path = /opt/usr/lib
|
||||||
|
} else {
|
||||||
|
target.path = /usr/lib
|
||||||
|
}
|
||||||
|
INSTALLS += target
|
||||||
|
}
|
||||||
12
hive/libhive/libhive_global.h
Normal file
12
hive/libhive/libhive_global.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#ifndef LIBHIVE_GLOBAL_H
|
||||||
|
#define LIBHIVE_GLOBAL_H
|
||||||
|
|
||||||
|
#include <QtCore/qglobal.h>
|
||||||
|
|
||||||
|
#if defined(LIBHIVE_LIBRARY)
|
||||||
|
# define LIBHIVESHARED_EXPORT Q_DECL_EXPORT
|
||||||
|
#else
|
||||||
|
# define LIBHIVESHARED_EXPORT Q_DECL_IMPORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // LIBHIVE_GLOBAL_H
|
||||||
51
hive/libhive/server.cpp
Normal file
51
hive/libhive/server.cpp
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#include "server.h"
|
||||||
|
|
||||||
|
#include <QNetworkInterface>
|
||||||
|
#include <QTcpServer>
|
||||||
|
#include <QTcpSocket>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
Server::Server(QObject *parent) :
|
||||||
|
QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
qDebug() << "----------------------------";
|
||||||
|
qDebug() << "network interfaces:";
|
||||||
|
foreach(const QNetworkInterface &interface, QNetworkInterface::allInterfaces()){
|
||||||
|
qDebug() << " -------------------------";
|
||||||
|
qDebug() << " name:" << interface.name();
|
||||||
|
qDebug() << " mac: " << interface.hardwareAddress();
|
||||||
|
}
|
||||||
|
qDebug() << "----------------------------";
|
||||||
|
|
||||||
|
// Listen on all Networkinterfaces
|
||||||
|
foreach(const QHostAddress &address, QNetworkInterface::allAddresses()){
|
||||||
|
QTcpServer *server = new QTcpServer(this);
|
||||||
|
if(server->listen(address, 1234)) {
|
||||||
|
qDebug() << "server listening on" << address.toString();
|
||||||
|
connect(server, SIGNAL(newConnection()), SLOT(incomingConnection()));
|
||||||
|
m_serverList.append(server);
|
||||||
|
} else {
|
||||||
|
qDebug() << "ERROR: can not listening to" << address.toString();
|
||||||
|
delete server;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Server::incomingConnection()
|
||||||
|
{
|
||||||
|
// got a new client connected
|
||||||
|
QTcpServer *server = qobject_cast<QTcpServer*>(sender());
|
||||||
|
QTcpSocket *newConnection = server->nextPendingConnection();
|
||||||
|
qDebug() << "new client connected:" << newConnection->peerAddress().toString();
|
||||||
|
|
||||||
|
// append the new client to the client list
|
||||||
|
m_clientList.append(newConnection);
|
||||||
|
|
||||||
|
connect(newConnection, SIGNAL(readyRead()), SLOT(readPackage()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Server::readPackage()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
27
hive/libhive/server.h
Normal file
27
hive/libhive/server.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef SERVER_H
|
||||||
|
#define SERVER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QTcpServer>
|
||||||
|
|
||||||
|
class Server : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit Server(QObject *parent = 0);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QList<QTcpServer*> m_serverList;
|
||||||
|
QList<QTcpSocket*> m_clientList;
|
||||||
|
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void incomingConnection();
|
||||||
|
void readPackage();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SERVER_H
|
||||||
28
hive/server/hive/hive.pro
Normal file
28
hive/server/hive/hive.pro
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#-------------------------------------------------
|
||||||
|
#
|
||||||
|
# Project created by QtCreator 2013-08-15T13:31:23
|
||||||
|
#
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
QT += core
|
||||||
|
|
||||||
|
QT -= gui
|
||||||
|
|
||||||
|
TARGET = hive
|
||||||
|
CONFIG += console
|
||||||
|
CONFIG -= app_bundle
|
||||||
|
|
||||||
|
TEMPLATE = app
|
||||||
|
|
||||||
|
SOURCES += main.cpp \
|
||||||
|
hivecore.cpp
|
||||||
|
|
||||||
|
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../libhive/release/ -llibhive
|
||||||
|
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../libhive/debug/ -llibhive
|
||||||
|
else:unix: LIBS += -L$$OUT_PWD/../../libhive/ -llibhive
|
||||||
|
|
||||||
|
INCLUDEPATH += $$PWD/../../libhive
|
||||||
|
DEPENDPATH += $$PWD/../../libhive
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
hivecore.h
|
||||||
8
hive/server/hive/hivecore.cpp
Normal file
8
hive/server/hive/hivecore.cpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include "hivecore.h"
|
||||||
|
|
||||||
|
|
||||||
|
HiveCore::HiveCore(QObject *parent) :
|
||||||
|
QObject(parent)
|
||||||
|
{
|
||||||
|
m_server = new Server(this);
|
||||||
|
}
|
||||||
22
hive/server/hive/hivecore.h
Normal file
22
hive/server/hive/hivecore.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef HIVECORE_H
|
||||||
|
#define HIVECORE_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <libhive/server.h>
|
||||||
|
|
||||||
|
class HiveCore : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit HiveCore(QObject *parent = 0);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Server m_server;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // HIVECORE_H
|
||||||
11
hive/server/hive/main.cpp
Normal file
11
hive/server/hive/main.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include <QCoreApplication>
|
||||||
|
#include "hivecore.h"
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QCoreApplication a(argc, argv);
|
||||||
|
|
||||||
|
HiveCore core;
|
||||||
|
|
||||||
|
return a.exec();
|
||||||
|
}
|
||||||
23
hive/server/hive_pi/hive_pi.pro
Normal file
23
hive/server/hive_pi/hive_pi.pro
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#-------------------------------------------------
|
||||||
|
#
|
||||||
|
# Project created by QtCreator 2013-08-15T13:14:35
|
||||||
|
#
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
QT += core
|
||||||
|
|
||||||
|
QT -= gui
|
||||||
|
|
||||||
|
TARGET = hive_pi
|
||||||
|
target.path = /usr/bin
|
||||||
|
|
||||||
|
CONFIG += console
|
||||||
|
CONFIG -= app_bundle
|
||||||
|
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
|
|
||||||
|
TEMPLATE = app
|
||||||
|
|
||||||
|
|
||||||
|
SOURCES += main.cpp
|
||||||
8
hive/server/hive_pi/main.cpp
Normal file
8
hive/server/hive_pi/main.cpp
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QCoreApplication a(argc, argv);
|
||||||
|
|
||||||
|
return a.exec();
|
||||||
|
}
|
||||||
3
hive/server/server.pro
Normal file
3
hive/server/server.pro
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
|
SUBDIRS += hive hive_pi
|
||||||
Reference in New Issue
Block a user