#include "backend.h" AiBackend::Request::Request(const QString& textIn, void* userPtrIn): text(textIn), userPtr(userPtrIn) { id = idCounter++; } const QString& AiBackend::Request::getText() const { return text; } uint32_t AiBackend::Request::getId() const { return id; } void* AiBackend::Request::getUserPtr() const { return userPtr; } bool AiBackend::Request::operator==(const Request& in) { return id == in.id; } AiBackend::Response::Response(QString textIn, uint32_t idIn, bool finishedIn, void* userPtrIn): AiBackend::Request::Request(textIn, userPtrIn), finished(finishedIn) { id = idIn; } bool AiBackend::Response::isFinished() const { return finished; } void AiBackend::Response::setUserPtr(void* ptr) { userPtr = ptr; } void AiBackend::generate(const Request& request) { m_requests.insert(request.getId(), request); generateImpl(request); } bool AiBackend::isValidId(uint32_t id) { return m_requests.find(id) != m_requests.end(); } void AiBackend::feedResponse(Response response) { response.setUserPtr(m_requests[response.getId()].getUserPtr()); if(response.isFinished()) m_requests.remove(response.getId()); gotResponse(response); }