mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-01-02 10:58:45 -05:00
46 lines
1.0 KiB
C++
46 lines
1.0 KiB
C++
#include "Query.hpp"
|
|
#include <stdexcept>
|
|
|
|
#include <memory>
|
|
#include <utility>
|
|
|
|
using namespace db;
|
|
|
|
Query::Query(Type type, QueryListener *listener) : type(type), listener(listener)
|
|
{}
|
|
|
|
QueryListener *Query::getQueryListener() const noexcept
|
|
{
|
|
return listener;
|
|
}
|
|
|
|
void Query::setQueryListener(QueryListener *queryListener) noexcept
|
|
{
|
|
listener = queryListener;
|
|
}
|
|
|
|
QueryResult::QueryResult(std::shared_ptr<Query> requestQuery) : requestQuery(std::move(requestQuery))
|
|
{}
|
|
|
|
void QueryResult::setRequestQuery(std::shared_ptr<Query> requestQueryToSet)
|
|
{
|
|
requestQuery = requestQueryToSet;
|
|
}
|
|
|
|
std::shared_ptr<Query> QueryResult::getRequestQuery() const noexcept
|
|
{
|
|
return requestQuery;
|
|
}
|
|
|
|
bool QueryResult::handle()
|
|
{
|
|
if (requestQuery == nullptr || requestQuery->getQueryListener() == nullptr) {
|
|
|
|
// Temporary solution for not handled DBQueries in Messages application.
|
|
return false;
|
|
throw std::runtime_error("No listener to handle query");
|
|
}
|
|
|
|
return requestQuery->getQueryListener()->handleQueryResponse(this);
|
|
}
|