#ifndef RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
#define RTC_BASE_PHYSICAL_SOCKET_SERVER_H_
#include "api/async_dns_resolver.h"
#include "api/units/time_delta.h"
#include "rtc_base/socket.h"
#include "rtc_base/socket_address.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#if defined(WEBRTC_POSIX)
#if defined(WEBRTC_LINUX)
#include <sys/epoll.h>
#define WEBRTC_USE_EPOLL …
#elif defined(WEBRTC_FUCHSIA) || defined(WEBRTC_MAC)
#include <poll.h>
#define WEBRTC_USE_POLL …
#else
#endif
#endif
#include <array>
#include <cstdint>
#include <memory>
#include <string>
#include <unordered_map>
#include <vector>
#include "rtc_base/deprecated/recursive_critical_section.h"
#include "rtc_base/socket_server.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/thread_annotations.h"
#if defined(WEBRTC_POSIX)
SOCKET;
#endif
namespace rtc {
enum DispatcherEvent { … };
class Signaler;
class Dispatcher { … };
class RTC_EXPORT PhysicalSocketServer : public SocketServer { … };
class PhysicalSocket : public Socket, public sigslot::has_slots<> { … };
class SocketDispatcher : public Dispatcher, public PhysicalSocket { … };
}
#endif