-
-
Notifications
You must be signed in to change notification settings - Fork 98
/
r2pipe.h
52 lines (45 loc) · 875 Bytes
/
r2pipe.h
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <QtNetwork>
#include <QProcess>
#include <unistd.h>
#define HAVE_R2_API 1
/* interface must be R2Pipe */
class R2Pipe {
private:
QObject *parent;
QProcess *proc;
int r2p_fd[2];
QString Read() {
QString r = QString();
char ch;
if (r2p_fd[0] == -1) {
return NULL;
}
while (read (r2p_fd[0], &ch, 1) == 1) {
if (ch == 0) break;
r += ch;
}
return r;
}
bool Write(QString cmd) {
const char *str = (const char *)cmd.toLatin1();
const int len = strlen (str);
return write (r2p_fd[1], str, len + 1) != -1;
}
public:
R2Pipe(QString filepath = NULL);
QString cmd(QString x);
QJsonObject cmdj(QString x);
void close();
};
#if HAVE_R2_API
#include <r2naked.h>
class R2PipeAPI {
private:
void *core;
public:
R2PipeAPI(QString filepath = NULL);
QString cmd(QString x);
QJsonObject cmdj(QString x);
void close();
};
#endif