summaryrefslogtreecommitdiffstats
path: root/weather/weather.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'weather/weather.cpp')
-rw-r--r--weather/weather.cpp50
1 files changed, 5 insertions, 45 deletions
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);
- }
}