Desktop native module methods signatures without implementation

This commit is contained in:
Max Risuhin
2018-02-08 00:07:12 +02:00
parent 86c56aa05d
commit 899de3d6d7
3 changed files with 117 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_TYPE_NAMES}
\"RCTHttpServer\" PARENT_SCOPE)
set(REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC ${REACT_NATIVE_DESKTOP_EXTERNAL_MODULES_SRC}
${CMAKE_CURRENT_SOURCE_DIR}/rcthttpserver.cpp PARENT_SCOPE)
+67
View File
@@ -0,0 +1,67 @@
/**
* Copyright (c) 2017-present, Status Research and Development GmbH.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#include "rcthttpserver.h"
#include "bridge.h"
#include "eventdispatcher.h"
#include <QDebug>
#include <QJsonDocument>
#include <QByteArray>
#include <QVariantMap>
#include "libstatus.h"
namespace {
struct RegisterQMLMetaType {
RegisterQMLMetaType() {
qRegisterMetaType<RCTHttpServer*>();
}
} registerMetaType;
} // namespace
class RCTHttpServerPrivate {
public:
Bridge* bridge = nullptr;
};
RCTHttpServer::RCTHttpServer(QObject* parent) : QObject(parent), d_ptr(new RCTHttpServerPrivate) {}
RCTHttpServer::~RCTHttpServer() {}
void RCTHttpServer::setBridge(Bridge* bridge) {
Q_D(RCTHttpServer);
d->bridge = bridge;
}
QString RCTHttpServer::moduleName() {
return "RCTHttpServer";
}
QList<ModuleMethod*> RCTHttpServer::methodsToExport() {
return QList<ModuleMethod*>{};
}
QVariantMap RCTHttpServer::constantsToExport() {
return QVariantMap();
}
void RCTHttpServer::start(int port, QString serviceName) {
}
void RCTHttpServer::stop() {
}
void RCTHttpServer::respond(int code, QString type, QString body) {
}
+43
View File
@@ -0,0 +1,43 @@
/**
* Copyright (c) 2017-present, Status Research and Development GmbH.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#ifndef RCTHTTPSERVER_H
#define RCTHTTPSERVER_H
#include "moduleinterface.h"
#include <QVariantMap>
class RCTHttpServerPrivate;
class RCTHttpServer : public QObject, public ModuleInterface {
Q_OBJECT
Q_INTERFACES(ModuleInterface)
Q_DECLARE_PRIVATE(RCTHttpServer)
public:
Q_INVOKABLE RCTHttpServer(QObject* parent = 0);
~RCTHttpServer();
void setBridge(Bridge* bridge) override;
QString moduleName() override;
QList<ModuleMethod*> methodsToExport() override;
QVariantMap constantsToExport() override;
Q_INVOKABLE void start(int port, QString serviceName);
Q_INVOKABLE void stop();
Q_INVOKABLE void respond(int code, QString type, QString body);
private:
QScopedPointer<RCTHttpServerPrivate> d_ptr;
};
#endif // RCTHTTPSERVER_H