00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00024 #ifndef SCALESTACK_NETWORK_LISTENER_H
00025 #define SCALESTACK_NETWORK_LISTENER_H
00026
00027 #include <scalestack/event/handler.h>
00028 #include <scalestack/kernel/macros.h>
00029
00030 struct addrinfo;
00031
00032 namespace scalestack
00033 {
00034 namespace network
00035 {
00036
00037 class stream_service_provider;
00038
00039 class SCALESTACK_API listener: public event::handler
00040 {
00041 public:
00042
00053 listener(event::handler_service& handler_service,
00054 const struct addrinfo& local,
00055 int backlog,
00056 stream_service_provider& stream_service_provider);
00057
00058 virtual ~listener();
00059
00064 void read_ready(int file_descriptor);
00065
00066 private:
00067
00071 listener(const listener&);
00072
00076 listener& operator=(const listener&);
00077
00078 stream_service_provider& _stream_service_provider;
00079 };
00080
00081 }
00082 }
00083
00084 #endif