diff options
Diffstat (limited to 'weather')
-rw-r--r-- | weather/CMakeLists.txt | 2 | ||||
-rw-r--r-- | weather/weather.cpp | 50 | ||||
-rw-r--r-- | weather/weather.h | 9 |
3 files changed, 8 insertions, 53 deletions
diff --git a/weather/CMakeLists.txt b/weather/CMakeLists.txt index 11d4f91..b622262 100644 --- a/weather/CMakeLists.txt +++ b/weather/CMakeLists.txt @@ -8,7 +8,7 @@ add_library(qtappfw-weather SHARED weather.cpp) target_include_directories(qtappfw-weather PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories(qtappfw-weather PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}") -target_link_libraries(qtappfw-weather qtappfw-core) +target_link_libraries(qtappfw-weather Qt5::Qml) set_target_properties(qtappfw-weather PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1 diff --git a/weather/weather.cpp b/weather/weather.cpp index d4a8173..864eeb6 100644 --- a/weather/weather.cpp +++ b/weather/weather.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2020 Konsulko Group + * Copyright (C) 2018,2020-2021 Konsulko Group * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,21 +17,14 @@ #include <QDebug> #include <QJsonArray> -#include "callmessage.h" -#include "eventmessage.h" -#include "messagefactory.h" -#include "messageengine.h" -#include "messageenginefactory.h" #include "weather.h" -Weather::Weather (QUrl &url, QObject * parent) : - QObject(parent) +Weather::Weather (QObject * parent) : + QObject(parent), + m_temperature("77"), + m_condition("clear sky") { - m_mloop = MessageEngineFactory::getInstance().getMessageEngine(url); - QObject::connect(m_mloop.get(), &MessageEngine::connected, this, &Weather::onConnected); - QObject::connect(m_mloop.get(), &MessageEngine::disconnected, this, &Weather::onDisconnected); - QObject::connect(m_mloop.get(), &MessageEngine::messageReceived, this, &Weather::onMessageReceived); } Weather::~Weather() @@ -40,41 +33,8 @@ Weather::~Weather() void Weather::onConnected() { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage *tmsg = static_cast<CallMessage*>(msg.get()); - tmsg->createRequest("weather", "subscribe", "weather"); - m_mloop->sendMessage(std::move(msg)); } void Weather::onDisconnected() { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage *tmsg = static_cast<CallMessage*>(msg.get()); - tmsg->createRequest("weater", "unsubscribe", "weather"); - m_mloop->sendMessage(std::move(msg)); -} - -void Weather::onMessageReceived(std::shared_ptr<Message> msg) -{ - if (!msg) - return; - - if (msg->isEvent()) { - std::shared_ptr<EventMessage> emsg = std::static_pointer_cast<EventMessage>(msg); - if (emsg->eventApi() != "weather") - return; - - QJsonObject data = emsg->eventData(); - m_temperature = QString::number(data.value("main").toObject().value("temp").toDouble()); - m_condition = data.value("weather").toArray().at(0).toObject().value("description").toString(); - - emit temperatureChanged(m_temperature); - emit conditionChanged(m_condition); - } } diff --git a/weather/weather.h b/weather/weather.h index 93c5ec4..bb03dca 100644 --- a/weather/weather.h +++ b/weather/weather.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2020 Konsulko Group + * Copyright (C) 2018,2020-2021 Konsulko Group * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,9 +20,6 @@ #include <memory> #include <QObject> -class MessageEngine; -class Message; - class Weather : public QObject { Q_OBJECT @@ -30,7 +27,7 @@ class Weather : public QObject Q_PROPERTY(QString condition READ condition NOTIFY conditionChanged) public: - explicit Weather(QUrl &url, QObject * parent = Q_NULLPTR); + explicit Weather(QObject * parent = Q_NULLPTR); virtual ~Weather(); QString temperature() { return m_temperature; } @@ -41,13 +38,11 @@ class Weather : public QObject void conditionChanged(QString condition); private: - std::shared_ptr<MessageEngine> m_mloop; QString m_temperature; QString m_condition; void onConnected(); void onDisconnected(); - void onMessageReceived(std::shared_ptr<Message>); }; #endif // WEATHER_H |