blob: 284d52044d3d066e33f4aa6d1b840ea4a319b97e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
{% lepolleventerh.inc included by levents.pas }
{$ifdef Linux}
PEpollEvent = ^epoll_event;
TEpollEvent = epoll_event;
PEpollData = ^epoll_data;
TEpollData = epoll_data;
{ TLEpollEventer }
TLEpollEventer = class(TLEventer)
protected
FTimeout: cInt;
FEvents: array of TEpollEvent;
FEventsRead: array of TEpollEvent;
FEpollReadFD: THandle; // this one monitors LT style for READ
FEpollFD: THandle; // this one monitors ET style for other
FEpollMasterFD: THandle; // this one monitors the first two
FFreeList: TFPObjectList;
function GetTimeout: Integer; override;
procedure SetTimeout(const Value: Integer); override;
procedure HandleIgnoreRead(aHandle: TLHandle); override;
procedure Inflate;
public
constructor Create; override;
destructor Destroy; override;
function AddHandle(aHandle: TLHandle): Boolean; override;
function CallAction: Boolean; override;
end;
{$endif} // linux
|