00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef KSTREAMSOCKET_H
00026 #define KSTREAMSOCKET_H
00027
00028 #include <tqstring.h>
00029
00030 #include "kclientsocketbase.h"
00031
00033 namespace KNetwork {
00034
00035 class KResolverEntry;
00036 class KResolverResults;
00037 class TDEServerSocket;
00038 class TDEBufferedSocket;
00039
00040 class KStreamSocketPrivate;
00097 class TDECORE_EXPORT KStreamSocket: public KClientSocketBase
00098 {
00099 Q_OBJECT
00100
00101
00102 public:
00111 KStreamSocket(const TQString& node = TQString::null, const TQString& service = TQString::null,
00112 TQObject* parent = 0L, const char *name = 0L);
00113
00117 virtual ~KStreamSocket();
00118
00122 int timeout() const;
00123
00128 int remainingTimeout() const;
00129
00140 void setTimeout(int msecs);
00141
00165 virtual bool bind(const TQString& node = TQString::null,
00166 const TQString& service = TQString::null);
00167
00176 virtual bool bind(const KResolverEntry& entry)
00177 { return KClientSocketBase::bind(entry); }
00178
00200 virtual bool connect(const TQString& node = TQString::null,
00201 const TQString& service = TQString::null);
00202
00206 virtual bool connect(const KResolverEntry& entry);
00207
00208 signals:
00212 void timedOut();
00213
00214 private slots:
00215 void hostFoundSlot();
00216 void connectionEvent();
00217 void timeoutSlot();
00218
00219 private:
00227 bool bindLocallyFor(const KResolverEntry& peer);
00228
00237 void connectionSucceeded(const KResolverEntry& peer);
00238
00239 KStreamSocket(const KStreamSocket&);
00240 KStreamSocket& operator=(const KStreamSocket&);
00241
00242 KStreamSocketPrivate *d;
00243
00244 friend class TDEServerSocket;
00245 friend class TDEBufferedSocket;
00246 };
00247
00248 }
00249
00250 #endif