A classe EvStat

(PECL ev >= 0.2.0)

Introdução

EvStat monitora um caminho do sistema de arquivos para alterações de atributos. Ele chama stat() nesse caminho em intervalos regulares (ou quando o sistema operacional sinaliza que mudou) e vê se mudou em comparação com a última vez, invocando o retorno de chamada se isso aconteceu.

O caminho não precisa existir: mudar de “caminho existe” para “caminho não existe” é uma mudança de status como qualquer outra. A condição "caminho não existe" é representada pelo item 'nlink' sendo 0 (retornado pelo método EvStat::attr()).

O caminho não deve terminar com uma barra nem conter componentes especiais como '.' ou ... O caminho deve ser absoluto: se for relativo e o diretório de trabalho mudar, o comportamento será indefinido.

Como não existe uma interface portátil de notificação de alterações disponível, a implementação portátil simplesmente chama stat() regularmente no caminho para ver se ele mudou de alguma forma. Para este caso, um intervalo de pesquisa recomendado pode ser especificado. Se for especificado um intervalo de pesquisa de 0.0 (altamente recomendado), então um valor padrão adequado e não especificado será usado (que pode ser esperado em torno de 5 segundos, embora isso possa mudar dinamicamente). libev também imporá um intervalo mínimo que atualmente está em torno de 0.1, mas isso geralmente é um exagero.

Este tipo de observador não se destina a um grande número de observadores EvStat, pois mesmo com notificações de alteração suportadas pelo sistema operacional, isso pode consumir muitos recursos.

Resumo da classe

class EvStat extends EvWatcher {
/* Propriedades */
public $path;
public $interval;
/* Propriedades herdadas */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Métodos */
public __construct(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
)
public attr(): array
final public static createStopped(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): void
public prev(): void
public set( string $path , float $interval ): void
public stat(): bool
/* Métodos herdados */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

Propriedades

interval

Somente leitura. Uma dica sobre a rapidez com que uma mudança deve ser detectada e normalmente deve ser especificada como 0.0 para permitir que libev escolha um valor adequado.

path

Somente leitura. O caminho para aguardar alterações de status.

Table of Contents