aboutsummaryrefslogtreecommitdiff
path: root/lib/base/console.h
blob: cdc6033d099c580e841bd25eff1349b5e122b9ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef __LIB_BASE_CONSOLE_H__
#define __LIB_BASE_CONSOLE_H__

#include <lib/base/ebase.h>

class eString;

class eConsoleAppContainer: public Object
{
	int fd[3];
	int pid;
	int killstate;
	char *outbuf;
	eSocketNotifier *in, *out, *err;
	void readyRead(int what);
	void readyErrRead(int what);
	void readyWrite(int what);
	void closePipes();
public:
	eConsoleAppContainer( const eString &str );
	~eConsoleAppContainer();
	void kill();
	void write( const eString &s );
	bool running() { return fd[0] && fd[1]; }
	Signal1<void, eString> dataAvail;
	Signal1<void,int> dataSent;
	Signal1<void,int> appClosed;
};

#endif // __LIB_BASE_CONSOLE_H__