21 #ifndef COMMON_IO_WINDOWSPOLLER_H_
22 #define COMMON_IO_WINDOWSPOLLER_H_
24 #include <ola/Clock.h>
27 #include <ola/io/Descriptor.h>
29 #define WIN32_LEAN_AND_MEAN
35 #include "common/io/PollerInterface.h"
36 #include "common/io/TimeoutManager.h"
58 bool delete_on_close);
65 const TimeStamp *WakeUpTime()
const {
return &m_wake_up_time; }
74 } connected_pipe_descriptor_t;
76 struct connected_pipe_descriptor_t_lt {
77 bool operator()(
const connected_pipe_descriptor_t &c1,
78 const connected_pipe_descriptor_t &c2)
const {
79 return c1.descriptor->ReadDescriptor().m_handle.m_handle <
80 c2.descriptor->ReadDescriptor().m_handle.m_handle;
85 OVERLAPPED m_overlapped;
86 } overlapped_handle_context_t;
88 typedef std::set<connected_pipe_descriptor_t,
89 connected_pipe_descriptor_t_lt>
90 ConnectedPipeDescriptorSet;
91 typedef std::set<ReadFileDescriptor*> SocketDescriptorSet;
92 typedef std::map<void*, overlapped_handle_context_t> OverlappedHandleMap;
100 SocketDescriptorSet m_socket_read_descriptors;
101 ConnectedPipeDescriptorSet m_connected_pipe_read_descriptors;
102 OverlappedHandleMap m_overlapped_handle_map;
108 #endif // COMMON_IO_WINDOWSPOLLER_H_