diff options
Diffstat (limited to 'weather/weather.cpp')
-rw-r--r-- | weather/weather.cpp | 50 |
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); - } } |