4 #ifndef AGENT_OPER_INSTANCE_TASK_H__
5 #define AGENT_OPER_INSTANCE_TASK_H__
8 #include <boost/asio.hpp>
9 #include <boost/function.hpp>
20 typedef boost::function<void(InstanceTask *task, const std::string &msg)>
28 virtual bool Run() = 0;
29 virtual void Stop() = 0;
34 virtual pid_t
pid()
const = 0;
35 virtual const std::string &
cmd()
const = 0;
91 const std::string &
cmd()
const {
105 void ReadData(
const boost::system::error_code &ec,
size_t read_bytes);
109 boost::asio::posix::stream_descriptor
input_;
154 #endif // AGENT_OPER_INSTANCE_TASK_H__
static const size_t kBufLen
time_t start_time() const
void set_on_data_cb(OnDataCallback cb)
void Push(InstanceTask *task)
virtual int cmd_type() const =0
void set_on_timeout_cb(OnTimeoutCallback cb)
virtual pid_t pid() const =0
void TimerErrorHandler(const std::string &name, std::string error)
OnDataCallback on_data_cb_
boost::function< void(InstanceTask *task, const std::string &msg)> OnDataCallback
boost::function< void(InstanceTask *task, const boost::system::error_code &ec)> OnExitCallback
void set_cmd(std::string cmd)
boost::asio::posix::stream_descriptor input_
void StartTimer(int time)
OnTimeoutCallback on_timeout_cb_
std::queue< InstanceTask * > task_queue_
void set_on_exit_cb(OnExitCallback cb)
virtual void Terminate()=0
boost::function< void(InstanceTaskQueue *task_queue)> OnTimeoutCallback
void set_pipe_stdout(bool pipe)
void ReadData(const boost::system::error_code &ec, size_t read_bytes)
const std::string & cmd() const
virtual const std::string & cmd() const =0
OnExitCallback on_exit_cb_
InstanceTaskExecvp(const std::string &name, const std::string &cmd, int cmd_type, EventManager *evm)
InstanceTaskQueue(EventManager *evm)