summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/ipc.h
authorulf69 <ulf69>2004-09-15 17:53:22 (UTC)
committer ulf69 <ulf69>2004-09-15 17:53:22 (UTC)
commitd3925ba5bd25224bc4a60d3d6a107c464994a1ea (patch) (side-by-side diff)
tree60f69da1d2b79ee3081e7ef5c09a46470ca6eda0 /pwmanager/pwmanager/ipc.h
parentce83a3479d23b9e8a59c745ccd0a0b14f64ef4e8 (diff)
downloadkdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.zip
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.gz
kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.bz2
initial revision
Diffstat (limited to 'pwmanager/pwmanager/ipc.h') (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/ipc.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/pwmanager/pwmanager/ipc.h b/pwmanager/pwmanager/ipc.h
new file mode 100644
index 0000000..ccdaafb
--- a/dev/null
+++ b/pwmanager/pwmanager/ipc.h
@@ -0,0 +1,73 @@
+/***************************************************************************
+ * *
+ * copyright (C) 2004 by Michael Buesch *
+ * email: mbuesch@freenet.de *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License version 2 *
+ * as published by the Free Software Foundation. *
+ * *
+ ***************************************************************************/
+
+/***************************************************************************
+ * copyright (C) 2004 by Ulf Schenk
+ * This file is originaly based on version 1.0.1 of pwmanager
+ * and was modified to run on embedded devices that run microkde
+ *
+ * $Id$
+ **************************************************************************/
+
+#ifndef __PWM_IPC_H
+#define __PWM_IPC_H
+
+#include <unistd.h>
+
+#include <qobject.h>
+#include <stdio.h>
+
+class QSocketNotifier;
+
+/** very simple interprocess communication class */
+class Ipc : public QObject
+{
+ Q_OBJECT
+public:
+ /** create a new Ipc communication object */
+ Ipc();
+ /** create a new Ipc communication object and
+ * connect it to "ipc"
+ */
+ Ipc(const Ipc *ipc);
+ /** destructor */
+ ~Ipc();
+
+ /** send data to the other socket end
+ * (To the connected ipc object)
+ */
+ void send(const char *buf, size_t size)
+ { write(sock[0], buf, size); }
+
+signals:
+ /** a line is available */
+ void lineAvailable(const char *buf, size_t size);
+
+protected slots:
+ /** received data on socket */
+ void receiveData(int s);
+
+protected:
+ /** full-duplex socket file desciptors */
+ int sock[2];
+ /** stream on "this" end of the socket (sock[0]) */
+ FILE *stream;
+ /** socket notifier */
+ QSocketNotifier *notifier;
+ /** are we the host or the client object? */
+ bool host;
+ /** receive buffer */
+ char *rdBuf;
+ /** current receive buffer size */
+ size_t rdBufSize;
+};
+
+#endif // __PWM_IPC_H