summaryrefslogtreecommitdiffstats
path: root/weather
diff options
context:
space:
mode:
Diffstat (limited to 'weather')
-rw-r--r--weather/CMakeLists.txt2
-rw-r--r--weather/weather.cpp50
-rw-r--r--weather/weather.h9
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