lyx_mirror/development/lyxserver/server_monitor.h
Enrico Forestieri f20d6d1eab Add a Qt version of the LyX server monitor program.
I tried to account for msvc based on the MS docs, but I cannot test it.
Apologies if it does not compile out of the box. It works with mingw.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31372 a592a061-630c-0410-9148-cb99ea01b6c8
2009-09-12 00:15:00 +00:00

91 lines
1.6 KiB
C++

/**
* \file server_monitor.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author Enrico Forestieri
*
* Full author contact details are available in file CREDITS.
*/
#ifndef SERVER_MONITOR_H
#define SERVER_MONITOR_H
#include <errno.h>
#include <fcntl.h>
#include <QDialog>
#include <QFile>
#include <QLineEdit>
#ifdef _WIN32
#include <windows.h>
#ifdef _MSC_VER
#include <io.h>
#define open _open
#define close _close
#define read _read
#define write _write
#define snprintf _snprintf
#define O_RDONLY _O_RDONLY
#define O_WRONLY _O_WRONLY
#endif
#endif
class QGroupBox;
class QLabel;
class QPushButton;
class ReadPipe;
class LyXServerMonitor : public QDialog
{
Q_OBJECT
enum { BUFSIZE = 512 };
public:
LyXServerMonitor();
///
~LyXServerMonitor();
///
void readPipe();
///
QString inPipeName() { return pipeNameLE->text() + ".in"; }
///
QString outPipeName() { return pipeNameLE->text() + ".out"; }
public Q_SLOTS:
void openPipes();
void closePipes();
void submitCommand();
private:
void createCmdsGroupBox();
void createGridGroupBox();
bool event(QEvent *);
QGroupBox * horizontalGB;
QGroupBox * gridGB;
QLabel * labels[6];
QLineEdit * pipeNameLE;
QLineEdit * clientNameLE;
QLineEdit * commandLE;
QLineEdit * argumentLE;
QLabel * infoLB;
QLabel * notifyLB;
QPushButton * openPipesPB;
QPushButton * closePipesPB;
QPushButton * submitCommandPB;
QPushButton * donePB;
int pipein;
int pipeout;
bool thread_exit;
bool lyx_listen;
char buffer[BUFSIZE];
char pipedata[BUFSIZE];
ReadPipe * pipethread;
};
#endif