5#ifndef RUNTIME_BIN_EVENTHANDLER_MACOS_H_
6#define RUNTIME_BIN_EVENTHANDLER_MACOS_H_
8#if !defined(RUNTIME_BIN_EVENTHANDLER_H_)
9#error Do not include eventhandler_macos.h directly; use eventhandler.h instead.
14#include <sys/socket.h>
23class DescriptorInfo :
public DescriptorInfoBase {
62class DescriptorInfoMultiple
63 :
public DescriptorInfoMultipleMixin<DescriptorInfo> {
73class EventHandlerImplementation {
89 void HandleEvents(
struct kevent* events,
int size);
91 static void EventHandlerEntry(
uword args);
92 void WakeupHandler(intptr_t
id,
Dart_Port dart_port, int64_t
data);
93 void HandleInterruptFd();
94 void SetPort(intptr_t fd,
Dart_Port dart_port, intptr_t mask);
96 static void* GetHashmapKeyFromFd(intptr_t fd);
97 static uint32_t GetHashmapHashFromFd(intptr_t fd);
102 int interrupt_fds_[2];
DescriptorInfoMultiple(intptr_t fd)
virtual ~DescriptorInfoMultiple()
DescriptorInfoSingle(intptr_t fd)
virtual ~DescriptorInfoSingle()
DescriptorInfo(intptr_t fd)
virtual ~DescriptorInfo()
void set_tracked_by_kqueue(bool value)
void SendData(intptr_t id, Dart_Port dart_port, int64_t data)
EventHandlerImplementation()
void Start(EventHandler *handler)
~EventHandlerImplementation()
DescriptorInfo * GetDescriptorInfo(intptr_t fd, bool is_listening)
void UpdateKQueueInstance(intptr_t old_mask, DescriptorInfo *di)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
static int8_t data[kExtLength]