00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KSOCKSSOCKETDEVICE_H
00021 #define KSOCKSSOCKETDEVICE_H
00022
00023 #include "tdesocketdevice.h"
00024
00025 namespace KNetwork {
00026
00040 class TDECORE_EXPORT KSocksSocketDevice: public TDESocketDevice
00041 {
00042 public:
00046 KSocksSocketDevice(const TDESocketBase* = 0L);
00047
00051 explicit KSocksSocketDevice(int fd);
00052
00056 virtual ~KSocksSocketDevice();
00057
00061 virtual int capabilities() const;
00062
00066 virtual bool bind(const KResolverEntry& address);
00067
00071 virtual bool listen(int backlog);
00072
00076 virtual bool connect(const KResolverEntry& address);
00077
00081 virtual KSocksSocketDevice* accept();
00082
00086 virtual TQ_LONG tqreadBlock(char *data, TQ_ULONG maxlen);
00087 virtual TQ_LONG tqreadBlock(char *data, TQ_ULONG maxlen, TDESocketAddress& from);
00088
00092 virtual TQ_LONG peekBlock(char *data, TQ_ULONG maxlen);
00093 virtual TQ_LONG peekBlock(char *data, TQ_ULONG maxlen, TDESocketAddress& from);
00094
00098 virtual TQ_LONG tqwriteBlock(const char *data, TQ_ULONG len);
00099 virtual TQ_LONG tqwriteBlock(const char *data, TQ_ULONG len, const TDESocketAddress& to);
00100
00104 virtual TDESocketAddress localAddress() const;
00105
00109 virtual TDESocketAddress peerAddress() const;
00110
00114 virtual TDESocketAddress externalAddress() const;
00115
00119 virtual bool poll(bool* input, bool* output, bool* exception = 0L,
00120 int timeout = -1, bool* timedout = 0L);
00121
00122 private:
00123 static void initSocks();
00124 friend class TDESocketDevice;
00125 };
00126
00127 }
00128
00129 #endif