From 4b4a086f310ccf6570214e5ed4911116f8c96240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20H=C3=B6ltt=C3=A4?= Date: Tue, 27 Mar 2018 13:45:10 +0200 Subject: Add documentation and an example for QtRemoteObjects templates Add documentation for remote object templates: update list of template files and add a general description of the remote objects features. Add an example project and a walkthrough to demonstrate the remote objects generation features. Task-number: QTAUTO-919 Change-Id: I3d25d29fd9b9ca2a72bbc6662f05b968d9aa5413 Reviewed-by: Dominik Holland --- examples/ivicore/ivicore.pro | 3 +- .../qface-ivi-remote/backend_qtro/backend_qtro.pro | 25 +++++ examples/ivicore/qface-ivi-remote/demo/demo.pro | 37 ++++++++ examples/ivicore/qface-ivi-remote/demo/main.cpp | 69 ++++++++++++++ examples/ivicore/qface-ivi-remote/demo/main.qml | 103 +++++++++++++++++++++ examples/ivicore/qface-ivi-remote/demo/qml.qrc | 5 + .../qface-ivi-remote/example-ivi-remote.qface | 16 ++++ .../ivicore/qface-ivi-remote/frontend/frontend.pro | 18 ++++ .../ivicore/qface-ivi-remote/qface-ivi-remote.pro | 11 +++ .../ivicore/qface-ivi-remote/server_qtro/main.cpp | 66 +++++++++++++ .../server_qtro/processingservice.cpp | 64 +++++++++++++ .../server_qtro/processingservice.h | 66 +++++++++++++ .../qface-ivi-remote/server_qtro/server_qtro.pro | 42 +++++++++ 13 files changed, 524 insertions(+), 1 deletion(-) create mode 100644 examples/ivicore/qface-ivi-remote/backend_qtro/backend_qtro.pro create mode 100644 examples/ivicore/qface-ivi-remote/demo/demo.pro create mode 100644 examples/ivicore/qface-ivi-remote/demo/main.cpp create mode 100644 examples/ivicore/qface-ivi-remote/demo/main.qml create mode 100644 examples/ivicore/qface-ivi-remote/demo/qml.qrc create mode 100644 examples/ivicore/qface-ivi-remote/example-ivi-remote.qface create mode 100644 examples/ivicore/qface-ivi-remote/frontend/frontend.pro create mode 100644 examples/ivicore/qface-ivi-remote/qface-ivi-remote.pro create mode 100644 examples/ivicore/qface-ivi-remote/server_qtro/main.cpp create mode 100644 examples/ivicore/qface-ivi-remote/server_qtro/processingservice.cpp create mode 100644 examples/ivicore/qface-ivi-remote/server_qtro/processingservice.h create mode 100644 examples/ivicore/qface-ivi-remote/server_qtro/server_qtro.pro (limited to 'examples') diff --git a/examples/ivicore/ivicore.pro b/examples/ivicore/ivicore.pro index 14dc55e..8e7798d 100644 --- a/examples/ivicore/ivicore.pro +++ b/examples/ivicore/ivicore.pro @@ -1,4 +1,5 @@ TEMPLATE = subdirs QT_FOR_CONFIG += ivicore -qtConfig(ivigenerator): SUBDIRS = qface-ivi-climate +qtConfig(ivigenerator): SUBDIRS += qface-ivi-climate +qtConfig(ivigenerator): qtConfig(remoteobjects): SUBDIRS += qface-ivi-remote diff --git a/examples/ivicore/qface-ivi-remote/backend_qtro/backend_qtro.pro b/examples/ivicore/qface-ivi-remote/backend_qtro/backend_qtro.pro new file mode 100644 index 0000000..6b7f191 --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/backend_qtro/backend_qtro.pro @@ -0,0 +1,25 @@ +TEMPLATE=lib +TARGET = $$qtLibraryTarget(example_ivi_remote) +CONFIG += ivigenerator plugin +macos: CONFIG += debug_and_release build_all + +QT_FOR_CONFIG += ivicore +!qtConfig(ivigenerator): error("No ivigenerator available") + +LIBS += -L$$OUT_PWD/../ -l$$qtLibraryTarget(QtIviRemoteExample) +DESTDIR = ../qtivi + +CONFIG += warn_off +INCLUDEPATH += $$OUT_PWD/../frontend +PLUGIN_TYPE = qtivi +PLUGIN_EXTENDS = qtivi +PLUGIN_CLASS_NAME = RemoteClientPlugin + +QT += core ivicore + +QFACE_FORMAT = backend_qtro +QFACE_SOURCES = ../example-ivi-remote.qface + +CONFIG += install_ok # Do not cargo-cult this! +target.path = $$[QT_INSTALL_EXAMPLES]/ivicore/qface-ivi-remote/qtivi/ +INSTALLS += target diff --git a/examples/ivicore/qface-ivi-remote/demo/demo.pro b/examples/ivicore/qface-ivi-remote/demo/demo.pro new file mode 100644 index 0000000..5a85a7c --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/demo/demo.pro @@ -0,0 +1,37 @@ +TARGET = qface-ivi-remote +TEMPLATE = app + +QT += qml quick +CONFIG += c++11 +CONFIG -= app_bundle +DESTDIR = ../ + +LIBS += -L$$OUT_PWD/../ -l$$qtLibraryTarget(QtIviRemoteExample) +INCLUDEPATH += $$OUT_PWD/../frontend + +SOURCES += main.cpp + +RESOURCES += qml.qrc + +QMAKE_RPATHDIR += $ORIGIN + +# Additional import path used to resolve QML modules in Qt Creator's code model +QML_IMPORT_PATH = + +# Additional import path used to resolve QML modules just for Qt Quick Designer +QML_DESIGNER_IMPORT_PATH = + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which as been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +CONFIG += install_ok # Do not cargo-cult this! +target.path = $$[QT_INSTALL_EXAMPLES]/ivicore/qface-ivi-remote +INSTALLS += target diff --git a/examples/ivicore/qface-ivi-remote/demo/main.cpp b/examples/ivicore/qface-ivi-remote/demo/main.cpp new file mode 100644 index 0000000..1ccba57 --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/demo/main.cpp @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtIvi module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: BSD-3-Clause +** +****************************************************************************/ + +#include +#include + +#include + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + RemoteModule::registerTypes(); + RemoteModule::registerQmlTypes(QLatin1String("IviRemote"), 1, 0); + + QQmlApplicationEngine engine; + engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + + return app.exec(); +} diff --git a/examples/ivicore/qface-ivi-remote/demo/main.qml b/examples/ivicore/qface-ivi-remote/demo/main.qml new file mode 100644 index 0000000..a5c6c80 --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/demo/main.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtIvi module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: BSD-3-Clause +** +****************************************************************************/ + +import QtQuick 2.7 +import QtQuick.Controls 2.3 +import QtQuick.Window 2.2 +import IviRemote 1.0 + +Window { + visible: true + width: 640 + height: 480 + title: qsTr("QtIVI Remote example") + + UiProcessingService { + id: processingService + } + + Column { + anchors.fill: parent + anchors.margins: 10 + + Row { + Button { + text: "Process" + + onClicked: processingService.process(inputField.text).then( + function(result) { //success callback + resultLabel.text = result + }, + function() { //failure callback + resultLabel.text = "failed" + } ) + } + TextField { + placeholderText: "text to process" + id: inputField + } + } + + Row { + Text { text: "Processing result: " } + Text { id: resultLabel } + } + + Row { + Text { text: "Last message: " } + Text { + id: serverMessage + text: processingService.lastMessage + } + } + } +} diff --git a/examples/ivicore/qface-ivi-remote/demo/qml.qrc b/examples/ivicore/qface-ivi-remote/demo/qml.qrc new file mode 100644 index 0000000..5f6483a --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/demo/qml.qrc @@ -0,0 +1,5 @@ + + + main.qml + + diff --git a/examples/ivicore/qface-ivi-remote/example-ivi-remote.qface b/examples/ivicore/qface-ivi-remote/example-ivi-remote.qface new file mode 100644 index 0000000..444163e --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/example-ivi-remote.qface @@ -0,0 +1,16 @@ +/** + * Test module + */ +module Example.IVI.Remote 1.0; + +/** + * The ProcessingService provides a QML interface to a service doing + * all sorts of heavy processing + */ +@config: { id: "example.qtivi.ProcessingService/1.0", qml_type: "UiProcessingService" } +interface ProcessingService { + + string lastMessage; + + int process(string data); +} diff --git a/examples/ivicore/qface-ivi-remote/frontend/frontend.pro b/examples/ivicore/qface-ivi-remote/frontend/frontend.pro new file mode 100644 index 0000000..9259b86 --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/frontend/frontend.pro @@ -0,0 +1,18 @@ +TARGET = $$qtLibraryTarget(QtIviRemoteExample) +TEMPLATE = lib +CONFIG += ivigenerator +DESTDIR = .. +macos: CONFIG += debug_and_release build_all + +QT_FOR_CONFIG += ivicore +!qtConfig(ivigenerator): error("No ivigenerator available") + +QT += ivicore ivicore-private qml quick + +DEFINES += QT_BUILD_REMOTE_LIB + +QFACE_SOURCES = ../example-ivi-remote.qface + +CONFIG += install_ok # Do not cargo-cult this! +target.path = $$[QT_INSTALL_EXAMPLES]/ivicore/qface-ivi-remote +INSTALLS += target diff --git a/examples/ivicore/qface-ivi-remote/qface-ivi-remote.pro b/examples/ivicore/qface-ivi-remote/qface-ivi-remote.pro new file mode 100644 index 0000000..f487cec --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/qface-ivi-remote.pro @@ -0,0 +1,11 @@ +TEMPLATE = subdirs + +SUBDIRS = frontend \ + backend_qtro \ + server_qtro \ + demo + +CONFIG += ordered + +OTHER_FILES += \ + example-ivi-remote.qface diff --git a/examples/ivicore/qface-ivi-remote/server_qtro/main.cpp b/examples/ivicore/qface-ivi-remote/server_qtro/main.cpp new file mode 100644 index 0000000..9eb73d4 --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/server_qtro/main.cpp @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtIvi module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: BSD-3-Clause +** +****************************************************************************/ + +#include + +#include "processingservice.h" +#include "core.h" + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + + ProcessingService service; + Core::instance()->host()->enableRemoting(&service,QStringLiteral("Example.IVI.Remote.ProcessingService")); + + return app.exec(); +} diff --git a/examples/ivicore/qface-ivi-remote/server_qtro/processingservice.cpp b/examples/ivicore/qface-ivi-remote/server_qtro/processingservice.cpp new file mode 100644 index 0000000..a3f154c --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/server_qtro/processingservice.cpp @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Luxoft GmbH +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtIvi module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: BSD-3-Clause +** +****************************************************************************/ + +#include "processingservice.h" + +ProcessingService::ProcessingService() +{ + setLastMessage("Service online."); +} + +int ProcessingService::process(const QString & data) +{ + setLastMessage(QStringLiteral("Processed data \'%1\'").arg(data)); + return data.length(); +} diff --git a/examples/ivicore/qface-ivi-remote/server_qtro/processingservice.h b/examples/ivicore/qface-ivi-remote/server_qtro/processingservice.h new file mode 100644 index 0000000..c7ef6b8 --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/server_qtro/processingservice.h @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Luxoft GmbH +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtIvi module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: BSD-3-Clause +** +****************************************************************************/ + +#ifndef PROCESSINGSERVICE_H +#define PROCESSINGSERVICE_H + +#include "rep_processingservice_source.h" + +class ProcessingService : public ProcessingServiceSimpleSource +{ +public: + ProcessingService(); + + int process(const QString & data) override; +}; + +#endif // PROCESSINGSERVICE_H diff --git a/examples/ivicore/qface-ivi-remote/server_qtro/server_qtro.pro b/examples/ivicore/qface-ivi-remote/server_qtro/server_qtro.pro new file mode 100644 index 0000000..145872e --- /dev/null +++ b/examples/ivicore/qface-ivi-remote/server_qtro/server_qtro.pro @@ -0,0 +1,42 @@ +TARGET = qface-ivi-remote-server +TEMPLATE = app + +QT -= gui +CONFIG += c++11 ivigenerator +CONFIG -= app_bundle +DESTDIR = ../ + +LIBS += -L$$OUT_PWD/../ -l$$qtLibraryTarget(QtIviRemoteExample) +INCLUDEPATH += $$OUT_PWD/../frontend + +SOURCES += main.cpp \ + processingservice.cpp + +QMAKE_RPATHDIR += $ORIGIN + +QFACE_FORMAT = server_qtro +QFACE_SOURCES = ../example-ivi-remote.qface + +# Additional import path used to resolve QML modules in Qt Creator's code model +QML_IMPORT_PATH = + +# Additional import path used to resolve QML modules just for Qt Quick Designer +QML_DESIGNER_IMPORT_PATH = + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which as been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +CONFIG += install_ok # Do not cargo-cult this! +target.path = $$[QT_INSTALL_EXAMPLES]/ivicore/qface-ivi-remote-server +INSTALLS += target + +HEADERS += \ + processingservice.h -- cgit v1.2.1