author | ulf69 <ulf69> | 2004-09-15 17:53:22 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-09-15 17:53:22 (UTC) |
commit | d3925ba5bd25224bc4a60d3d6a107c464994a1ea (patch) (side-by-side diff) | |
tree | 60f69da1d2b79ee3081e7ef5c09a46470ca6eda0 /pwmanager/pwmanager/ipc.h | |
parent | ce83a3479d23b9e8a59c745ccd0a0b14f64ef4e8 (diff) | |
download | kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.zip kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.gz kdepimpi-d3925ba5bd25224bc4a60d3d6a107c464994a1ea.tar.bz2 |
initial revision
-rw-r--r-- | pwmanager/pwmanager/ipc.h | 73 |
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 |