openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
console.h
Go to the documentation of this file.
1 #ifndef __LIB_BASE_CONSOLE_H__
2 #define __LIB_BASE_CONSOLE_H__
3 
4 #include <string>
5 #include <lib/base/ebase.h>
7 #include <queue>
8 #include <vector>
9 #include <utility>
10 
11 struct queue_data
12 {
13  queue_data( char *data, int len )
14  :data(data), len(len), dataSent(0)
15  {
16  }
17  char *data;
18  int len;
19  int dataSent;
20 };
21 
22 class eConsoleAppContainer: public sigc::trackable, public iObject
23 {
24  DECLARE_REF(eConsoleAppContainer);
25  int fd[3];
26  int filefd[3];
27  int pid;
28  int killstate;
29  std::string m_cwd;
30  std::queue<struct queue_data> outbuf;
31  ePtr<eSocketNotifier> in, out, err;
32  std::vector<char> buffer;
33  int m_nice = -1;
34  int m_ionice = -1;
35  void readyRead(int what);
36  void readyErrRead(int what);
37  void readyWrite(int what);
38  void closePipes();
39 public:
42  int setCWD( const char *path );
43  void setBufferSize(int size);
44  void setNice(int nice) { m_nice = nice;}
45  void setIONice(int ionice) { m_ionice = ionice;}
46  int execute( const char *str );
47  int execute( const char *cmdline, const char *const argv[] );
48  int getPID() { return pid; }
49  void kill();
50  void sendCtrlC();
51  void sendEOF();
52  void write( const char *data, int len );
53  void setFileFD(int num, int fd) { if (num >= 0 && num <= 2) filefd[num] = fd; }
54  bool running() { return (fd[0]!=-1) && (fd[1]!=-1) && (fd[2]!=-1); }
60 };
61 
62 #endif // __LIB_BASE_CONSOLE_H__
Definition: connections.h:57
Definition: console.h:23
PSignal1< void, std::pair< const char *, int > > stderrAvail
Definition: console.h:57
void setIONice(int ionice)
Definition: console.h:45
void setBufferSize(int size)
Definition: console.cpp:90
PSignal1< void, int > dataSent
Definition: console.h:58
bool running()
Definition: console.h:54
void setFileFD(int num, int fd)
Definition: console.h:53
PSignal1< void, int > appClosed
Definition: console.h:59
void kill()
Definition: console.cpp:166
~eConsoleAppContainer()
Definition: console.cpp:161
void setNice(int nice)
Definition: console.h:44
void sendCtrlC()
Definition: console.cpp:196
PSignal1< void, std::pair< const char *, int > > stdoutAvail
Definition: console.h:56
eConsoleAppContainer()
Definition: console.cpp:64
int setCWD(const char *path)
Definition: console.cpp:76
void write(const char *data, int len)
Definition: console.cpp:314
PSignal1< void, std::pair< const char *, int > > dataAvail
Definition: console.h:55
int getPID()
Definition: console.h:48
int execute(const char *str)
Definition: console.cpp:96
void sendEOF()
Definition: console.cpp:209
Definition: object.h:15
unsigned char data[256]
Definition: hdmi_cec.h:2
size
Definition: Plugins/SystemPlugins/PositionerSetup/log.py:16
string path
Definition: FindPicon.py:11
str
Definition: enigma_py_patcher.py:14
Definition: console.h:12
int len
Definition: console.h:18
queue_data(char *data, int len)
Definition: console.h:13
int dataSent
Definition: console.h:19
char * data
Definition: console.h:17