+// -*- C++ -*-
/**
* \file io_callback.h
- * Copyright 2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author unknown
- * \author John Levon <moz@compsoc.man.ac.uk>
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS
*/
#ifndef IO_CALLBACK_H
#define IO_CALLBACK_H
-
-#include <config.h>
-#include "lyxserver.h"
-
+
+#include <qobject.h>
#include <qsocketnotifier.h>
+#include <boost/scoped_ptr.hpp>
+
+class LyXComm;
+/**
+ * io_callback - a simple wrapper for asynchronous pipe notification
+ *
+ * This is used by the lyxserver to notice the pipe is ready to be
+ * read.
+ *
+ * FIXME: this code apparently will not work on Windows.
+ */
class io_callback : public QObject {
- Q_OBJECT
+ Q_OBJECT
public:
- io_callback(int fd, LyXComm * comm)
- : comm_(comm) {
- QSocketNotifier * sn = new QSocketNotifier(fd,
- QSocketNotifier::Read, this);
- connect(sn, SIGNAL(activated(int)), this, SLOT(data_received()));
- }
-
+ /// connect a read ready notification for fd to the LyXComm
+ io_callback(int fd, LyXComm * comm);
public slots:
- void data_received() {
- comm_->read_ready();
- }
-
+ void data_received();
private:
+ /// our notifier
+ boost::scoped_ptr<QSocketNotifier> sn_;
+
LyXComm * comm_;
};
-#endif // IO_CALLBACK_H
+#endif // IO_CALLBACK_H