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