66 lines
1.1 KiB
C++
66 lines
1.1 KiB
C++
#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);
|
|
}
|