summaryrefslogtreecommitdiff
path: root/core/qws/qcopbridge.h
authorkergoth <kergoth>2003-05-08 16:48:20 (UTC)
committer kergoth <kergoth>2003-05-08 16:48:20 (UTC)
commit7d24cfad2a564436950b5f42e74c0bd51481f5a9 (patch) (side-by-side diff)
treebc55466250fd15014a35a9c13f0538893b2245fc /core/qws/qcopbridge.h
parent0cb4111d34d9fe96731f48983e1ff2e67262db02 (diff)
downloadopie-7d24cfad2a564436950b5f42e74c0bd51481f5a9.zip
opie-7d24cfad2a564436950b5f42e74c0bd51481f5a9.tar.gz
opie-7d24cfad2a564436950b5f42e74c0bd51481f5a9.tar.bz2
Start work on a new launcher. This commit is simply a minimal Opie QWS server.
Diffstat (limited to 'core/qws/qcopbridge.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/qws/qcopbridge.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/core/qws/qcopbridge.h b/core/qws/qcopbridge.h
new file mode 100644
index 0000000..408d10d
--- a/dev/null
+++ b/core/qws/qcopbridge.h
@@ -0,0 +1,92 @@
+/**********************************************************************
+** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
+**
+** This file is part of the Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+#ifndef __qcopbridge_h__
+#define __qcopbridge_h__
+
+#include <qserversocket.h>
+#include <qsocket.h>
+#include <qdir.h>
+#include <qfile.h>
+#include <qbuffer.h>
+
+class QFileInfo;
+class QCopBridgePI;
+class QCopChannel;
+
+class QCopBridge : public QServerSocket
+{
+ Q_OBJECT
+
+public:
+ QCopBridge( Q_UINT16 port, QObject *parent = 0, const char* name = 0 );
+ virtual ~QCopBridge();
+
+ void newConnection( int socket );
+ void closeOpenConnections();
+
+public slots:
+ void connectionClosed( QCopBridgePI *pi );
+ void desktopMessage( const QCString &call, const QByteArray & );
+
+protected:
+ void timerEvent( QTimerEvent * );
+
+private:
+ QCopChannel *desktopChannel;
+ QCopChannel *cardChannel;
+ QList<QCopBridgePI> openConnections;
+ bool sendSync;
+};
+
+
+class QCopBridgePI : public QSocket
+{
+ Q_OBJECT
+
+ enum State { Connected, Wait_USER, Wait_PASS, Ready, Forbidden };
+
+public:
+ QCopBridgePI( int socket, QObject *parent = 0, const char* name = 0 );
+ virtual ~QCopBridgePI();
+
+ void sendDesktopMessage( const QString &msg );
+ void startSync() { sendSync = TRUE; }
+
+signals:
+ void connectionClosed( QCopBridgePI *);
+
+protected slots:
+ void read();
+ void send( const QString& msg );
+ void process( const QString& command );
+ void connectionClosed();
+
+protected:
+ void timerEvent( QTimerEvent *e );
+
+private:
+ State state;
+ Q_UINT16 peerport;
+ QHostAddress peeraddress;
+ bool connected;
+ bool sendSync;
+};
+
+#endif