1#ifndef _PROCESS_MANAGER_H_
2#define _PROCESS_MANAGER_H_
3#include <boost/archive/text_iarchive.hpp>
4#include <boost/archive/text_oarchive.hpp>
5#include <boost/serialization/map.hpp>
6#include <boost/serialization/serialization.hpp>
7#include <boost/serialization/vector.hpp>
8#include <boost/uuid/uuid.hpp>
9#include <boost/uuid/uuid_generators.hpp>
10#include <boost/uuid/uuid_io.hpp>
11#include <boost/uuid/uuid_serialize.hpp>
66 const std::string typout,
const std::string
id) {
76 input_type = parent.input_type;
77 output_type = parent.output_type;
80 std::string
name()
const {
return nm; };
88 std::string
id()
const {
return myid; };
96 void set_id(
const std::string
id) { myid =
id; };
100 if (
this == &parent) {
103 input_type = parent.input_type;
104 output_type = parent.output_type;
112 std::string input_type;
113 std::string output_type;
114 friend boost::serialization::access;
115 template <
class Archive>
116 void serialize(Archive &ar,
const unsigned int version) {
130 const size_t instance = 0)
const;
132 std::string
jobname()
const {
return jobnm; };
134 std::string
jobid()
const {
return boost::uuids::to_string(job_uuid); };
147 boost::uuids::uuid id;
149 return boost::uuids::to_string(
id);
154 boost::uuids::uuid job_uuid;
155 boost::uuids::random_generator gen;
156 std::map<std::string, std::vector<AlgorithmDefinition>> algs;
157 friend boost::serialization::access;
158 template <
class Archive>
159 void serialize(Archive &ar,
const unsigned int version) {
Lightweight data structure to completely describe an algorithm.
Definition ProcessManager.h:43
AlgorithmDefinition(const AlgorithmDefinition &parent)
Definition ProcessManager.h:73
AlgorithmDefinition()
Definition ProcessManager.h:50
AlgorithmDefinition & operator=(const AlgorithmDefinition &parent)
Definition ProcessManager.h:99
std::string name() const
Definition ProcessManager.h:80
void set_id(const std::string id)
Definition ProcessManager.h:96
AlgorithmDefinition(const std::string name, const std::string typin, const std::string typout, const std::string id)
Definition ProcessManager.h:65
std::string id() const
return the id as a string.
Definition ProcessManager.h:88
Manager for process-level algorithm and job identifiers.
Definition ProcessManager.h:122
std::string jobname() const
Definition ProcessManager.h:132
std::string jobid() const
Definition ProcessManager.h:134
std::string new_newid()
Get a new UUID to define unique job run.
Definition ProcessManager.h:146
AlgorithmDefinition algorithm(const std::string name, const size_t instance=0) const
Definition ProcessManager.cc:46
ProcessManager()
Definition ProcessManager.cc:10