28 #include <rockets/jsonrpc/types.h>
47 auto task = std::make_shared<AddModelFromBlobTask>(param, engine);
49 std::lock_guard<std::mutex> lock(_mutex);
50 _requests.emplace(std::make_pair(clientID, param.
chunksID), task);
60 std::lock_guard<std::mutex> lock(_mutex);
61 const auto key = std::make_pair(wsRequest.clientID, _nextChunkID);
62 if (_requests.count(key) == 0)
68 _requests[key]->appendBlob(wsRequest.message);
75 std::lock_guard<std::mutex> lock(_mutex);
76 for (
auto i = _requests.begin(); i != _requests.end();)
78 if (i->first.first != clientID)
84 i = _requests.erase(i);
91 std::lock_guard<std::mutex> lock(_mutex);
92 for (
auto i = _requests.begin(); i != _requests.end();)
94 if (i->second != task)
99 i = _requests.erase(i);
104 using ClientRequestID = std::pair<uintptr_t, std::string>;
105 std::map<ClientRequestID, std::shared_ptr<AddModelFromBlobTask>> _requests;
106 std::string _nextChunkID;
void removeTask(TaskPtr task)
void setNextChunkID(const std::string &id)
auto createTask(const BinaryParam ¶m, uintptr_t clientID, Engine &engine)
rockets::ws::Response processMessage(const rockets::ws::Request &wsRequest)
void removeRequest(const uintptr_t clientID)
Provides an abstract implementation of a ray-tracing engine.
const std::string METHOD_REQUEST_MODEL_UPLOAD
std::shared_ptr< AbstractTask > TaskPtr