#ifndef SERVER_H #define SERVER_H #include "pipeline.h" #include "runner.h" #include #include class PIHTTPServer; class Server: public PIObject { PIOBJECT(Server) public: Server(ushort port, const PIString & pipelines_dir, const PIString & logs_dir, const PIString & web_root = PIString()); ~Server(); bool start(); private: void serveStaticFiles(const PIString & web_root); PIHTTP::MessageMutable listPipelines(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable createPipeline(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable deletePipeline(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable getPipeline(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable startRun(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable getRunStatus(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable getRunLog(const PIHTTP::MessageConst & request); PIHTTP::MessageMutable unhandledRequest(const PIHTTP::MessageConst & request); ushort port_; PIString pipelines_dir_; PIString logs_dir_; PIString web_root_; PIHTTPServer * httpserver_; PipelineRunner runner_; }; #endif