1 #ifndef RECODEX_BROKER_WORKER_H 2 #define RECODEX_BROKER_WORKER_H 20 std::vector<std::string> data_;
30 job_request_data(
const std::string &job_id,
const std::vector<std::string> &additional) : complete_(true)
33 data_ = {
"eval", job_id};
34 for (
auto &i : additional) {
69 std::vector<std::string>
get()
const 80 typedef std::multimap<std::string, std::string>
headers_t;
89 size_t failure_count = 0;
138 virtual bool match(
const std::string &value)
140 return value == my_value_;
155 std::multimap<std::string, std::unique_ptr<header_matcher>> headers_;
158 const std::multimap<std::string, std::string> headers_copy_;
164 std::queue<request_ptr> request_queue_;
167 request_ptr current_request_;
174 std::string description =
"";
187 worker(
const std::string &
id,
const std::string &hwgroup,
const std::multimap<std::string, std::string> &headers);
198 bool headers_equal(
const std::multimap<std::string, std::string> &other);
205 virtual bool check_header(
const std::string &header,
const std::string &value);
211 virtual void enqueue_request(request_ptr
request);
217 virtual void complete_request();
224 virtual request_ptr cancel_request();
230 virtual bool next_request();
236 virtual std::shared_ptr<const request> get_current_request()
const;
243 virtual std::shared_ptr<std::vector<request_ptr>> terminate();
249 std::string get_description()
const;
252 #endif // RECODEX_BROKER_WORKER_H std::shared_ptr< request > request_ptr
job_request_data(const std::string &job_id)
job_request_data(const std::string &job_id, const std::vector< std::string > &additional)
const std::string hwgroup
const std::string & get_job_id() const
request(const job_request_data &data)
std::multimap< std::string, std::string > headers_t
request(const headers_t &headers, const job_request_data &data)
const std::string identity
const job_request_data data