Files
kateai/backend.cpp
2023-11-02 23:12:17 +01:00

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);
}