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 function __construct(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
)
public function attr(): array
final public static function createStopped(
     string $path ,
     float $interval ,
     callable $callback ,
     mixed $data = null ,
     int $priority = 0
): void
public function prev(): void
public function set( string $path , float $interval ): void
public function stat(): bool
/* Métodos herdados */
public function EvWatcher::clear(): int
public function EvWatcher::feed( int $revents ): void
public function EvWatcher::getLoop(): EvLoop
public function EvWatcher::invoke( int $revents ): void
public function EvWatcher::keepalive( bool $value = ?): bool
public function EvWatcher::setCallback( callable $callback ): void
public function EvWatcher::start(): void
public function EvWatcher::stop(): 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.

Índice

adicionar nota

Notas de Usuários

Não há notas de usuários para esta página.
To Top