15#ifndef REST_API_SOLVER_H
16#define REST_API_SOLVER_H
84 void restore(
const std::vector<char>& data)
override;
103 std::string
httpPost(
const std::string& path,
const std::string& body =
"{}");
104 std::string
httpGet(
const std::string& path);
105 std::string
httpDelete(
const std::string& path);
Abstract interface for thermal-hydraulic solvers and solver callbacks.
ThermalHydraulicSolver backed by a solver process behind a REST API.
void setInputDeck(const std::string &path) override
Store path in r5pars_.carg2 / carg2len. The remote solver does not read input decks; runSequence() al...
void setTerminateAll(bool v) override
Sets r5pars_.terminateall.
std::map< int, std::string > restore_checkpoints_
void setThermoCacheMode(int mode) override
No-op.
RestApiSolver(const std::string &base_url)
bool isTerminateAll() const override
r5pars_.terminateall
static int parseNcountFromIndeck(const std::string &path)
std::string httpDelete(const std::string &path)
std::string httpPost(const std::string &path, const std::string &body="{}")
std::map< int, std::string > seq_checkpoints_
std::map< int, double > last_inter_val_
void runSequence(SolverCallback &cb) override
Run one sequence against the remote solver. Blocks until it ends.
std::string httpGet(const std::string &path)
void setBranchCount(int n) override
Sets r5pars_.cnbranch.
void createSession(bool fresh)
std::vector< char > checkpoint() override
JSON object mapping restart count (as a string key) to the server-side checkpoint id,...
double currentTime() const override
r5pars_.timesno [s]
int stopFlag() const override
r5pars_.csnostop
void populateR5Pars(const std::string &json_str)
void restore(const std::vector< char > &data) override
Parse a buffer produced by checkpoint() and keep its map for the next runSequence(),...
void setMembufMode(int mode) override
No-op.
std::string last_checkpoint_id_
void setGenNode(bool v) override
Sets r5pars_.cgennode.
void setNewRestart(bool v) override
Sets r5pars_.cnewrst.
Callback interface that the engine implements to receive notifications from the solver.
Abstract interface for thermal-hydraulic solvers.