00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __KMESSAGECLIENT_H__
00021 #define __KMESSAGECLIENT_H__
00022
00023 #include <tqobject.h>
00024 #include <tqstring.h>
00025 #include <tqvaluelist.h>
00026
00027 class KMessageIO;
00028 class KMessageServer;
00029 class KMessageClientPrivate;
00030
00050 class KMessageClient : public TQObject
00051 {
00052 Q_OBJECT
00053
00054
00055 public:
00056
00062 KMessageClient (TQObject *parent = 0, const char *name = 0);
00063
00068 ~KMessageClient ();
00069
00077 TQ_UINT32 id () const;
00078
00089 bool isAdmin () const;
00090
00094 TQ_UINT32 adminId() const;
00095
00099 const TQValueList <TQ_UINT32> &clientList() const;
00100
00112 void setServer (const TQString &host, TQ_UINT16 port);
00113
00123 void setServer (KMessageServer *server);
00124
00128 void disconnect();
00129
00151 virtual void setServer (KMessageIO *connection);
00152
00159 bool isConnected () const;
00160
00165 bool isNetwork () const;
00166
00172 TQ_UINT16 peerPort () const;
00173
00179 TQString peerName() const;
00180
00192 void sendServerMessage (const TQByteArray &msg);
00193
00202
00203 void sendBroadcast (const TQByteArray &msg);
00204
00221
00222 void sendForward (const TQByteArray &msg, const TQValueList <TQ_UINT32> &clients);
00223
00234 void sendForward (const TQByteArray &msg, TQ_UINT32 client);
00235
00243 void lock();
00244
00249 void unlock();
00250
00254 unsigned int delayedMessageCount() const;
00255
00256 signals:
00277 void broadcastReceived (const TQByteArray &msg, TQ_UINT32 senderID);
00278
00307 void forwardReceived (const TQByteArray &msg, TQ_UINT32 senderID, const TQValueList <TQ_UINT32> &receivers);
00308
00318 void connectionBroken ();
00319
00324 void aboutToDisconnect(TQ_UINT32 id);
00325
00332 void adminStatusChanged (bool isAdmin);
00333
00340 void eventClientConnected (TQ_UINT32 clientID);
00341
00349 void eventClientDisconnected (TQ_UINT32 clientID, bool broken);
00350
00361
00362
00363
00364 void serverMessageReceived (const TQByteArray &msg, bool &unknown);
00365
00366 protected:
00384 virtual void processMessage (const TQByteArray& msg);
00385
00386 protected slots:
00402 virtual void processIncomingMessage (const TQByteArray &msg);
00403
00408 void processFirstMessage();
00409
00416 virtual void removeBrokenConnection ();
00417 void removeBrokenConnection2 ();
00418
00419 private:
00420 KMessageClientPrivate *d;
00421 };
00422
00423 #endif