From d3925ba5bd25224bc4a60d3d6a107c464994a1ea Mon Sep 17 00:00:00 2001 From: ulf69 Date: Wed, 15 Sep 2004 17:53:22 +0000 Subject: initial revision --- (limited to 'pwmanager/pwmanager/ipc.h') 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 + +#include +#include + +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 -- cgit v0.9.0.2