5#ifndef RUNTIME_BIN_EVENTHANDLER_LINUX_H_
6#define RUNTIME_BIN_EVENTHANDLER_LINUX_H_
8#if !defined(RUNTIME_BIN_EVENTHANDLER_H_)
9#error Do not include eventhandler_linux.h directly; use eventhandler.h instead.
14#include <sys/socket.h>
23class DescriptorInfo :
public DescriptorInfoBase {
40class DescriptorInfoSingle :
public DescriptorInfoSingleMixin<DescriptorInfo> {
50class DescriptorInfoMultiple
51 :
public DescriptorInfoMultipleMixin<DescriptorInfo> {
61class EventHandlerImplementation {
76 void HandleEvents(
struct epoll_event* events,
int size);
78 void WakeupHandler(intptr_t
id,
Dart_Port dart_port, int64_t
data);
79 void HandleInterruptFd();
81 void SetPort(intptr_t fd,
Dart_Port dart_port, intptr_t mask);
83 static void* GetHashmapKeyFromFd(intptr_t fd);
84 static uint32_t GetHashmapHashFromFd(intptr_t fd);
89 int interrupt_fds_[2];
DescriptorInfoMultiple(intptr_t fd)
virtual ~DescriptorInfoMultiple()
DescriptorInfoSingle(intptr_t fd)
virtual ~DescriptorInfoSingle()
DescriptorInfo(intptr_t fd)
virtual ~DescriptorInfo()
void SendData(intptr_t id, Dart_Port dart_port, int64_t data)
void UpdateEpollInstance(intptr_t old_mask, DescriptorInfo *di)
EventHandlerImplementation()
void Start(EventHandler *handler)
~EventHandlerImplementation()
DescriptorInfo * GetDescriptorInfo(intptr_t fd, bool is_listening)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
static int8_t data[kExtLength]