46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
#include <variant>
|
|
#include <unordered_map>
|
|
|
|
#include <rapidjson/document.h>
|
|
|
|
#include "Defines.hpp"
|
|
|
|
namespace rj = rapidjson;
|
|
|
|
namespace daggy {
|
|
void checkRJParse(const rj::ParseResult &result, const std::string &prefix = "");
|
|
|
|
// Parameters
|
|
ConfigValues configFromJSON(const std::string &jsonSpec);
|
|
|
|
ConfigValues configFromJSON(const rj::Value &spec);
|
|
|
|
std::string configToJSON(const ConfigValues &config);
|
|
|
|
// Tasks
|
|
Task
|
|
taskFromJSON(const std::string &name, const rj::Value &spec, const ConfigValues &jobDefaults = {});
|
|
|
|
TaskSet tasksFromJSON(const std::string &jsonSpec, const ConfigValues &jobDefaults = {});
|
|
|
|
TaskSet tasksFromJSON(const rj::Value &spec, const ConfigValues &jobDefaults = {});
|
|
|
|
std::string taskToJSON(const Task &task);
|
|
|
|
std::string tasksToJSON(const TaskSet &tasks);
|
|
|
|
// Attempt Records
|
|
std::string attemptRecordToJSON(const AttemptRecord &attemptRecord);
|
|
|
|
// default serialization
|
|
std::ostream &operator<<(std::ostream &os, const Task &task);
|
|
|
|
std::string timePointToString(const TimePoint &tp);
|
|
|
|
TimePoint stringToTimePoint(const std::string &timeStr);
|
|
}
|