#include "ProcedureManager.h" ProcedureManager::ProcedureManager() {} void ProcedureManager::handleCall(FILE *in, FILE *out) const { ProcedureCallHeader header; auto ptr = reinterpret_cast(&header); std::size_t sz = 0; while (sz < sizeof(header)) sz += fread(ptr + sz, 1, sizeof(header) - sz, in); auto buf = new byte[header.len]; sz = 0; while (sz < header.len) sz += fread(buf + sz, 1, header.len - sz, in); BinaryBuffer bb(header.len, buf); delete[] buf; if (procedures.count(header.method)) { auto res = procedures.at(header.method)(bb); res.writeTo(out); } }