mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 10:50:36 +02:00
updated documentation
This commit is contained in:
parent
f22fbc771a
commit
9fbf448eeb
19
.vscode/c_cpp_properties.json
vendored
Normal file
19
.vscode/c_cpp_properties.json
vendored
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Mac",
|
||||||
|
"includePath": [
|
||||||
|
"${workspaceFolder}/**",
|
||||||
|
"${HOME}/Qt/5.12.4/clang_64/lib/QtCore.framework/Headers/5.12.4",
|
||||||
|
"${HOME}/Qt/5.12.4/clang_64/lib/**"
|
||||||
|
],
|
||||||
|
"defines": [],
|
||||||
|
"macFrameworkPath": [],
|
||||||
|
"compilerPath": "",
|
||||||
|
"cStandard": "c11",
|
||||||
|
"cppStandard": "c++17",
|
||||||
|
"intelliSenseMode": "clang-x64"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": 4
|
||||||
|
}
|
||||||
@ -6,9 +6,12 @@ GENERATE_LATEX = NO
|
|||||||
XML_PROGRAMLISTING = YES
|
XML_PROGRAMLISTING = YES
|
||||||
|
|
||||||
# Project settings
|
# Project settings
|
||||||
PROJECT_NAME = "core-sdk"
|
PROJECT_NAME = core-sdk
|
||||||
INPUT = "../src"
|
INPUT = ../src \
|
||||||
OUTPUT_DIRECTORY = ../../../build/doc/core-sdk
|
pages
|
||||||
|
FILE_PATTERNS += *.md
|
||||||
|
USE_MDFILE_AS_MAINPAGE = pages/mainpage.md
|
||||||
|
OUTPUT_DIRECTORY = ../build/doc/
|
||||||
FULL_PATH_NAMES = NO
|
FULL_PATH_NAMES = NO
|
||||||
|
|
||||||
# Attributes settings
|
# Attributes settings
|
||||||
|
|||||||
2
doc/pages/mainpage.md
Normal file
2
doc/pages/mainpage.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Core SDK documentation
|
||||||
|
|
||||||
@ -11,7 +11,8 @@ DIR_NAME="${CURRENT_DIR##*/}"
|
|||||||
|
|
||||||
FAIL=0
|
FAIL=0
|
||||||
SOURCE_DIR=$CURRENT_DIR"/.."
|
SOURCE_DIR=$CURRENT_DIR"/.."
|
||||||
BUILD_DIR=$SOURCE_DIR"/../../build"
|
BUILD_DIR=$SOURCE_DIR"/build"
|
||||||
|
DOC_DIR=$BUILD_DIR"/doc"
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
doc "$@"
|
doc "$@"
|
||||||
@ -20,8 +21,7 @@ main() {
|
|||||||
function doc() {
|
function doc() {
|
||||||
info "Generation documentation"
|
info "Generation documentation"
|
||||||
mkdir -p $BUILD_DIR
|
mkdir -p $BUILD_DIR
|
||||||
cd $BUILD_DIR/..
|
cd $BUILD_DIR
|
||||||
cd ..
|
|
||||||
if [ ! -d "m.css" ] ; then
|
if [ ! -d "m.css" ] ; then
|
||||||
info "Cloning m.css"; git clone git://github.com/mosra/m.css;
|
info "Cloning m.css"; git clone git://github.com/mosra/m.css;
|
||||||
fi
|
fi
|
||||||
@ -31,11 +31,11 @@ function doc() {
|
|||||||
pip3 install jinja2 Pygments
|
pip3 install jinja2 Pygments
|
||||||
|
|
||||||
info "Generating doxygen"
|
info "Generating doxygen"
|
||||||
if [ "$1" == "clean" ]; then rm -fr $BUILD_DIR/doc/$DIR_NAME; fi
|
if [ "$1" == "clean" ]; then rm -fr $DOC_DIR; fi
|
||||||
|
|
||||||
./doxygen.py --debug $SOURCE_DIR/doc/Doxyfile-mcss
|
./doxygen.py --debug $SOURCE_DIR/doc/Doxyfile-mcss
|
||||||
if [ "$1" == "open" ]; then
|
if [ "$1" == "open" ]; then
|
||||||
open $BUILD_DIR/doc/core-sdk/html/index.html
|
open $DOC_DIR/html/index.html
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
19
src/core/core.cpp
Normal file
19
src/core/core.cpp
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#include "core.h"
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
namespace core {
|
||||||
|
|
||||||
|
void installLogger(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
|
||||||
|
core::Logger::outputMessage(type, context, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void initAppLogger() {
|
||||||
|
auto res = qInstallMessageHandler(core::Logger::outputMessage);
|
||||||
|
if (res)
|
||||||
|
qCInfo(sdkcore) << "user message handler qInstallMessageHandler installed sucessfully";
|
||||||
|
else
|
||||||
|
qCWarning(sdkcore) << "failed to install message handler qInstallMessageHandler";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace core
|
||||||
36
src/core/core.h
Normal file
36
src/core/core.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
/** @page "Core SDK"
|
||||||
|
@m_class{m-block m-success} @par How to get the answer
|
||||||
|
@parblock
|
||||||
|
It's simple:
|
||||||
|
|
||||||
|
@m_class{m-code-figure} @parblock
|
||||||
|
@code{.cpp}
|
||||||
|
// this is the code
|
||||||
|
printf("The answer to the universe and everything is %d.", 5*9);
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
@code{.shell-session}
|
||||||
|
The answer to the universe and everything is 42.
|
||||||
|
@endcode
|
||||||
|
@endparblock
|
||||||
|
@endparblock
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// Qt
|
||||||
|
#include <QtCore>
|
||||||
|
// c++
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
namespace core {
|
||||||
|
|
||||||
|
/** internal application logger handler */
|
||||||
|
void installLogger(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
||||||
|
|
||||||
|
/** Install logger to application */
|
||||||
|
void initAppLogger();
|
||||||
|
|
||||||
|
}
|
||||||
@ -3,6 +3,7 @@ CONFIG += c++14
|
|||||||
#SRC_DIR = $$PWD
|
#SRC_DIR = $$PWD
|
||||||
message($$PWD)
|
message($$PWD)
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
|
$$PWD/core.cpp \
|
||||||
$$PWD/databasemanager.cpp \
|
$$PWD/databasemanager.cpp \
|
||||||
$$PWD/logger.cpp \
|
$$PWD/logger.cpp \
|
||||||
$$PWD/loggermessage.cpp \
|
$$PWD/loggermessage.cpp \
|
||||||
@ -10,6 +11,7 @@ SOURCES += \
|
|||||||
$$PWD/request.cpp \
|
$$PWD/request.cpp \
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
|
$$PWD/core.h \
|
||||||
$$PWD/databasemanager.h \
|
$$PWD/databasemanager.h \
|
||||||
$$PWD/logger.h \
|
$$PWD/logger.h \
|
||||||
$$PWD/loggermessage.h \
|
$$PWD/loggermessage.h \
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "loggermessage.h"
|
#include "loggermessage.h"
|
||||||
|
|
||||||
#include <QtCore>
|
#include <QLoggingCategory>
|
||||||
|
#include <QFileInfo>
|
||||||
|
|
||||||
Q_LOGGING_CATEGORY(sdkcore, "sdk.core");
|
Q_LOGGING_CATEGORY(sdkcore, "sdk.core");
|
||||||
Q_LOGGING_CATEGORY(sdknetwork, "sdk.network");
|
Q_LOGGING_CATEGORY(sdknetwork, "sdk.network");
|
||||||
@ -12,10 +13,7 @@ namespace core {
|
|||||||
Logger* Logger::sConsumer = nullptr;
|
Logger* Logger::sConsumer = nullptr;
|
||||||
//bool Logger::sShowFunction = false;
|
//bool Logger::sShowFunction = false;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Used to have user specific consumer of logger messages
|
|
||||||
* @param consumer - inv::Logger
|
|
||||||
*/
|
|
||||||
void Logger::setConsumer(Logger *consumer)
|
void Logger::setConsumer(Logger *consumer)
|
||||||
{
|
{
|
||||||
sConsumer = consumer;
|
sConsumer = consumer;
|
||||||
@ -73,7 +71,7 @@ void Logger::outputMessage(QtMsgType type, const QMessageLogContext &context, co
|
|||||||
}
|
}
|
||||||
if (sConsumer) {
|
if (sConsumer) {
|
||||||
LoggerMessage logmsg(shortFile,context.line,context.function,textType,context.category,msg, QLatin1String(""));
|
LoggerMessage logmsg(shortFile,context.line,context.function,textType,context.category,msg, QLatin1String(""));
|
||||||
sConsumer->insertMessage(logmsg); // emiting message
|
sConsumer->pushMessage(logmsg); // emiting message
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output message
|
// Output message
|
||||||
@ -92,7 +90,8 @@ void Logger::outputMessage(QtMsgType type, const QMessageLogContext &context, co
|
|||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Logger::insertMessage(const LoggerMessage& logmsg)
|
/** Passing data to consumer */
|
||||||
|
void Logger::pushMessage(const LoggerMessage& logmsg)
|
||||||
{
|
{
|
||||||
emit sConsumer->messageReceived(logmsg);
|
emit sConsumer->messageReceived(logmsg);
|
||||||
QMutexLocker locker(&sConsumer->mMutex);
|
QMutexLocker locker(&sConsumer->mMutex);
|
||||||
|
|||||||
@ -14,19 +14,70 @@ Q_DECLARE_LOGGING_CATEGORY(sdkcompress)
|
|||||||
|
|
||||||
namespace core {
|
namespace core {
|
||||||
|
|
||||||
/** @see http://stackoverflow.com/questions/8337300/c11-how-do-i-implement-convenient-logging-without-a-singleton */
|
/**
|
||||||
|
* # Loggger
|
||||||
|
*
|
||||||
|
* Class for logging qDebug qWarning qInfo and qCritical messages
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* ## Basic usage
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* int main() {
|
||||||
|
* core::initAppLogger(); // <-- then Logger::outputMessage will handle all messages
|
||||||
|
* // Log messge Filtering
|
||||||
|
* QStringList filters;
|
||||||
|
* filters << "qt.*=false";
|
||||||
|
* filters << "sdk.core.*=true";
|
||||||
|
* QLoggingCategory::setFilterRules(filters.join(QStringLiteral("\n")));
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @see https://doc.qt.io/qt-5/qdebug.html
|
||||||
|
* @see https://doc.qt.io/qt-5/qloggingcategory.html
|
||||||
|
*
|
||||||
|
*/
|
||||||
class Logger : public QObject
|
class Logger : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
// Static methods
|
// User defined consumer ( messages will be sent there using insertMessage )
|
||||||
static Logger* sConsumer;
|
static Logger* sConsumer;
|
||||||
static void setConsumer(Logger *consumer);
|
|
||||||
static void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
/// Default constructor
|
||||||
// static void message(const char *file, int line, const char *function, const QString &type, const QString &group, const QString &msg, const QString &detail = QString());
|
|
||||||
// Public methods
|
|
||||||
explicit Logger(QObject *parent = nullptr);
|
explicit Logger(QObject *parent = nullptr);
|
||||||
void insertMessage(const LoggerMessage& logmsg);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief User specific consumer of logger messages
|
||||||
|
* @param consumer - sublass of core::Loger
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* #include "core.h"
|
||||||
|
* int main() {
|
||||||
|
* core::initAppLogger();
|
||||||
|
* core::Logger logger;
|
||||||
|
* core::Logger::setConsumer(&logger);
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
static void setConsumer(Logger *consumer);
|
||||||
|
|
||||||
|
|
||||||
|
/** Only Message handler for Qt
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* #include "core.h"
|
||||||
|
* int main() {
|
||||||
|
* core::initAppLogger();
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
static void outputMessage(QtMsgType type, const QMessageLogContext &context, const QString &msg);
|
||||||
|
|
||||||
|
/** Pusing messges from installed message handler */
|
||||||
|
virtual void pushMessage(const LoggerMessage& logmsg);
|
||||||
QList<core::LoggerMessage> getNewMessages(int currentCount);
|
QList<core::LoggerMessage> getNewMessages(int currentCount);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,7 @@ RequestManager::RequestManager(QObject *parent)
|
|||||||
* @brief Soap::downloadRequest
|
* @brief Soap::downloadRequest
|
||||||
* @param soapRequest
|
* @param soapRequest
|
||||||
*/
|
*/
|
||||||
void RequestManager::downloadRequest(const std::shared_ptr<Request>& request)
|
void RequestManager::processRequest(const std::shared_ptr<Request>& request)
|
||||||
{
|
{
|
||||||
QNetworkReply *reply = mNetworkAccessManager.post(request->networkRequest(), request->requestData());
|
QNetworkReply *reply = mNetworkAccessManager.post(request->networkRequest(), request->requestData());
|
||||||
mRequestMap.insert(reply, request);
|
mRequestMap.insert(reply, request);
|
||||||
|
|||||||
@ -19,9 +19,8 @@ class RequestManager : public QObject
|
|||||||
public:
|
public:
|
||||||
explicit RequestManager(QObject *parent = nullptr);
|
explicit RequestManager(QObject *parent = nullptr);
|
||||||
|
|
||||||
void downloadRequest(const std::shared_ptr<Request>& request);
|
void processRequest(const std::shared_ptr<Request>& request);
|
||||||
|
|
||||||
// QByteArray data() const;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_SLOT void sslErrors(const QList<QSslError> &sslErrors);
|
Q_SLOT void sslErrors(const QList<QSslError> &sslErrors);
|
||||||
@ -34,8 +33,6 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QNetworkAccessManager mNetworkAccessManager;
|
QNetworkAccessManager mNetworkAccessManager;
|
||||||
//QNetworkReply *mCurrentReply = nullptr;
|
|
||||||
// QByteArray mData;
|
|
||||||
QMap<QNetworkReply*, std::shared_ptr<Request>> mRequestMap;
|
QMap<QNetworkReply*, std::shared_ptr<Request>> mRequestMap;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,13 @@
|
|||||||
|
#include "core.h"
|
||||||
|
|
||||||
#include <QCoreApplication>
|
#include <QCoreApplication>
|
||||||
#include <QCommandLineParser>
|
#include <QCommandLineParser>
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
core::initAppLogger();
|
||||||
|
|
||||||
QCoreApplication app(argc, argv);
|
QCoreApplication app(argc, argv);
|
||||||
QCoreApplication::setApplicationName("colnod-connector");
|
QCoreApplication::setApplicationName("colnod-connector");
|
||||||
QCoreApplication::setApplicationVersion("1.0");
|
QCoreApplication::setApplicationVersion("1.0");
|
||||||
@ -14,7 +19,4 @@ int main(int argc, char *argv[])
|
|||||||
QCommandLineOption dryModeOption("dryMode", "ColnodAPI", "Read-only mode, prints changes which would normally be made");
|
QCommandLineOption dryModeOption("dryMode", "ColnodAPI", "Read-only mode, prints changes which would normally be made");
|
||||||
parser.addOption(dryModeOption);
|
parser.addOption(dryModeOption);
|
||||||
parser.process(app);
|
parser.process(app);
|
||||||
|
|
||||||
// Synchronizaiton
|
|
||||||
return QCoreApplication::exec();
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user