kserversocket.h00001
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 KSERVERSOCKET_H
00026 #define KSERVERSOCKET_H
00027
00028 #include <qobject.h>
00029 #include "ksocketbase.h"
00030
00031 namespace KNetwork {
00032
00033 class KSocketDevice;
00034 class KStreamSocket;
00035 class KResolver;
00036 class KResolverResults;
00037
00038 class KServerSocketPrivate;
00107 class KDECORE_EXPORT KServerSocket: public QObject, public KPassiveSocketBase
00108 {
00109 Q_OBJECT
00110 public:
00121 KServerSocket(QObject* parent = 0L, const char *name = 0L);
00122
00140 KServerSocket(const QString& service, QObject* parent = 0L, const char *name = 0L);
00141
00160 KServerSocket(const QString& node, const QString& service,
00161 QObject* parent = 0L, const char *name = 0L);
00162
00169 ~KServerSocket();
00170
00171 protected:
00175 virtual bool setSocketOptions(int opts);
00176
00177 public:
00186 KResolver& resolver() const;
00187
00191 const KResolverResults& resolverResults() const;
00192
00207 void setResolutionEnabled(bool enable);
00208
00215 void setFamily(int families);
00216
00230 void setAddress(const QString& service);
00231
00247 void setAddress(const QString& node, const QString& service);
00248
00256 void setTimeout(int msecs);
00257
00275 virtual bool lookup();
00276
00290 virtual bool bind(const QString& node, const QString& service);
00291
00298 virtual bool bind(const QString& service);
00299
00305 virtual bool bind();
00306
00314 virtual bool bind(const KResolverEntry& address);
00315
00329 virtual bool listen(int backlog = 5);
00330
00334 virtual void close();
00335
00347 void setAcceptBuffered(bool enable);
00348
00366 virtual KActiveSocketBase* accept();
00367
00371 virtual KSocketAddress localAddress() const;
00372
00376 virtual KSocketAddress externalAddress() const;
00377
00378 private slots:
00379 void lookupFinishedSlot();
00380
00381 signals:
00387 void gotError(int code);
00388
00392 void hostFound();
00393
00400 void bound(const KResolverEntry& local);
00401
00406 void closed();
00407
00413 void readyAccept();
00414
00415 protected:
00420 void copyError();
00421
00422 private:
00423 bool doBind();
00424 bool doListen();
00425
00426 private:
00427 KServerSocket(const KServerSocket&);
00428 KServerSocket& operator=(const KServerSocket&);
00429
00430 KServerSocketPrivate *d;
00431 };
00432
00433 }
00434
00435 #endif
|