Event 类

(PECL event >= 1.2.6-beta)

简介

Event 类表示文件描述符准备读取或写入时触发的事件;文件描述符准备读取或写入时(仅限边沿触发 I/O);超时到期;信号发生;用户触发的事件。

每个事件都与 EventBase 关联。但是,事件只有在被添加(通过 Event::add())后才会触发。添加的事件处于待处理状态,直到注册的事件发生,从而使其变为活动状态。为了处理事件,用户可以注册回调函数,该函数在事件变为活动状态时被调用。如果事件被配置为持久的,它将保持待处理状态。如果不是持久性的,它将在其回调函数运行时停止待处理。 Event::del() 方法删除事件,使其不再处于待处理状态。通过 Event::add() 方法可以再次添加它。

类概要

final class Event {
/* 常量 */
const int ET = 32;
const int PERSIST = 16;
const int READ = 2;
const int WRITE = 4;
const int SIGNAL = 8;
const int TIMEOUT = 1;
/* 属性 */
public readonly bool $pending;
/* 方法 */
public add( float $timeout = ?): bool
public __construct(
     EventBase $base,
     mixed $fd,
     int $what,
     callable $cb,
     mixed $arg = NULL
)
public del(): bool
public free(): void
public static getSupportedMethods(): array
public pending( int $flags ): bool
public set(
     EventBase $base,
     mixed $fd,
     int $what = ?,
     callable $cb = ?,
     mixed $arg = ?
): bool
public setPriority( int $priority ): bool
public setTimer( EventBase $base , callable $cb , mixed $arg = ?): bool
public static signal(
     EventBase $base,
     int $signum,
     callable $cb,
     mixed $arg = ?
): Event
public static timer( EventBase $base , callable $cb , mixed $arg = ?): Event
}

属性

pending

事件是否处于待处理状态。请参见关于事件持久性

预定义常量

Event::ET

表示事件应该是边沿触发的,如果底层事件基础后端支持边沿触发事件。这会影响Event::READEvent::WRITE的语义。

Event::PERSIST

表示事件是持久的。请参见关于事件持久性

Event::READ

此标志表示当提供的文件描述符(通常是流资源或套接字)准备读取时变为活动的事件。

Event::WRITE

此标志表示当提供的文件描述符(通常是流资源或套接字)准备读取时变为活动的事件。

Event::SIGNAL

用于实现信号检测。请参见下面的“构建信号事件”。

Event::TIMEOUT

此标志表示在超时到期后变为活动的事件。

Event::TIMEOUT标志在构建事件时被忽略:可以在添加事件时设置超时,也可以不设置。如果超时发生,它在回调函数的$what参数中设置。

目录

添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top