00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include <drizzled/plugin/listen.h>
00023
00024 #include <netinet/in.h>
00025
00026 #include <drizzled/visibility.h>
00027
00028 namespace drizzled
00029 {
00030 namespace plugin
00031 {
00032
00037 class DRIZZLED_API ListenTcp : public Listen
00038 {
00039 ListenTcp();
00040 ListenTcp(const ListenTcp&);
00041 ListenTcp& operator=(const ListenTcp&);
00042 protected:
00044 uint32_t accept_error_count;
00045
00052 int acceptTcp(int fd);
00053
00054 public:
00055 ListenTcp(std::string name_arg)
00056 : Listen(name_arg),
00057 accept_error_count(0)
00058 {}
00059
00060 virtual ~ListenTcp() {}
00061
00067 virtual bool getFileDescriptors(std::vector<int> &fds);
00068
00073 virtual const std::string getHost(void) const;
00074
00079 virtual in_port_t getPort(void) const= 0;
00080 };
00081
00082 }
00083 }
00084