nodemanager/filters/ExecutionFilter.h (32 lines of code) (raw):

#ifndef EXECUTIONFILTER_H #define EXECUTIONFILTER_H #include <string> #include <cpprest/json.h> #include "../core/NodeManagerConfig.h" namespace hpc { namespace filters { using namespace hpc::core; class ExecutionFilter { public: ExecutionFilter() { filterFiles[JobStartFilter] = "filters/OnJobTaskStart.sh"; filterFiles[JobEndFilter] = "filters/OnJobEnd.sh"; filterFiles[TaskStartFilter] = "filters/OnTaskStart.sh"; } pplx::task<json::value> OnJobStart(int jobId, int taskId, int requeueCount, const json::value& input) const; pplx::task<json::value> OnJobEnd(int jobId, const json::value& input) const; pplx::task<json::value> OnTaskStart(int jobId, int taskId, int requeueCount, const json::value& input) const; pplx::task<json::value> ExecuteFilter(const std::string& filterType, int jobId, int taskId, int requeueCount, const json::value& input) const; private: std::map<std::string, std::string> filterFiles; const std::string JobStartFilter = "JobStartFilter"; const std::string JobEndFilter = "JobEndFilter"; const std::string TaskStartFilter = "TaskStartFilter"; }; } } #endif