Guitar
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AbstractPtyProcess Class Referenceabstract

#include <AbstractProcess.h>

Inheritance diagram for AbstractPtyProcess:
Inheritance graph
[legend]
Collaboration diagram for AbstractPtyProcess:
Collaboration graph
[legend]

Public Member Functions

virtual ~AbstractPtyProcess ()
 
void set_change_dir (process::helper::dir_string_t const &dir)
 
void set_max_output_queue_size (size_t n)
 
void set_completion_callback (std::function< void(bool, std::shared_ptr< void >)> fn, std::shared_ptr< void > userdata)
 
void notify_completed ()
 
std::string get_message () const
 
void clear_message ()
 
std::vector< char > const & stdout_bytes () const
 
std::vector< char > const & stderr_bytes () const
 
virtual void start (std::string const &cmd, std::string const &env, bool use_input)=0
 
virtual ProcessResult wait (int time=INT_MAX)=0
 
virtual void stop ()=0
 
virtual bool is_running () const =0
 
virtual int get_exit_code () const =0
 
virtual void write_input (char const *ptr, int len)=0
 
virtual int read_output (char *ptr, int len)=0
 
virtual void close_input ()=0
 

Protected Member Functions

void write_output (char const *buf, size_t len)
 
int pop_output (char *ptr, int len)
 

Protected Attributes

std::mutex mutex_
 
std::condition_variable cond_
 
process::helper::dir_string_t change_dir_
 
std::shared_ptr< void > user_data_
 
std::function< void(bool, std::shared_ptr< void >)> completed_fn_
 
std::deque< char > output_queue_
 
std::vector< char > output_vector_
 
std::vector< char > stderr_bytes_
 
size_t max_output_queue_size_ = 0
 

Constructor & Destructor Documentation

◆ ~AbstractPtyProcess()

virtual AbstractPtyProcess::~AbstractPtyProcess ( )
inlinevirtual

Member Function Documentation

◆ clear_message()

void AbstractPtyProcess::clear_message ( )

◆ close_input()

virtual void AbstractPtyProcess::close_input ( )
pure virtual

◆ get_exit_code()

virtual int AbstractPtyProcess::get_exit_code ( ) const
pure virtual

◆ get_message()

std::string AbstractPtyProcess::get_message ( ) const

◆ is_running()

virtual bool AbstractPtyProcess::is_running ( ) const
pure virtual

◆ notify_completed()

void AbstractPtyProcess::notify_completed ( )
inline

◆ pop_output()

int AbstractPtyProcess::pop_output ( char *  ptr,
int  len 
)
protected

◆ read_output()

virtual int AbstractPtyProcess::read_output ( char *  ptr,
int  len 
)
pure virtual

◆ set_change_dir()

void AbstractPtyProcess::set_change_dir ( process::helper::dir_string_t const &  dir)
inline

◆ set_completion_callback()

void AbstractPtyProcess::set_completion_callback ( std::function< void(bool, std::shared_ptr< void >)>  fn,
std::shared_ptr< void >  userdata 
)
inline

◆ set_max_output_queue_size()

void AbstractPtyProcess::set_max_output_queue_size ( size_t  n)
inline

◆ start()

virtual void AbstractPtyProcess::start ( std::string const &  cmd,
std::string const &  env,
bool  use_input 
)
pure virtual

◆ stderr_bytes()

std::vector<char> const& AbstractPtyProcess::stderr_bytes ( ) const
inline

◆ stdout_bytes()

std::vector<char> const& AbstractPtyProcess::stdout_bytes ( ) const
inline

◆ stop()

virtual void AbstractPtyProcess::stop ( )
pure virtual

◆ wait()

virtual ProcessResult AbstractPtyProcess::wait ( int  time = INT_MAX)
pure virtual

◆ write_input()

virtual void AbstractPtyProcess::write_input ( char const *  ptr,
int  len 
)
pure virtual

◆ write_output()

void AbstractPtyProcess::write_output ( char const *  buf,
size_t  len 
)
protected

Member Data Documentation

◆ change_dir_

process::helper::dir_string_t AbstractPtyProcess::change_dir_
protected

◆ completed_fn_

std::function<void(bool, std::shared_ptr<void>)> AbstractPtyProcess::completed_fn_
protected

◆ cond_

std::condition_variable AbstractPtyProcess::cond_
protected

◆ max_output_queue_size_

size_t AbstractPtyProcess::max_output_queue_size_ = 0
protected

◆ mutex_

std::mutex AbstractPtyProcess::mutex_
mutableprotected

◆ output_queue_

std::deque<char> AbstractPtyProcess::output_queue_
protected

◆ output_vector_

std::vector<char> AbstractPtyProcess::output_vector_
protected

◆ stderr_bytes_

std::vector<char> AbstractPtyProcess::stderr_bytes_
protected

◆ user_data_

std::shared_ptr<void> AbstractPtyProcess::user_data_
protected

The documentation for this class was generated from the following files: