diff --git a/examples/tail.php b/examples/tail.php new file mode 100644 index 00000000..a790414b --- /dev/null +++ b/examples/tail.php @@ -0,0 +1,40 @@ +getContents($path)->then(function ($content) use ($loop, $filesystem, $path) { + echo $content; + + $lastSize = strlen($content); + + $file = $filesystem->file($path); + + $file->open('r')->then(function (\React\Stream\ReadableStreamInterface $stream) use ($filesystem, $loop, $file, &$lastSize) { + /** @var \React\Filesystem\Stream\GenericStreamInterface $stream */ + $fileDescriptor = $stream->getFiledescriptor(); + + $adapter = $filesystem->getAdapter(); + + $loop->addPeriodicTimer(1, function () use ($adapter, $fileDescriptor, $file, &$lastSize) { + $file->size()->then(function ($size) use ($adapter, $fileDescriptor, &$lastSize) { + if ($lastSize === $size) { + return; + } + + $adapter->read($fileDescriptor, $size - $lastSize, $lastSize)->then(function ($content) { + echo $content; + }); + + $lastSize = $size; + }); + }); + }); +}); + +$loop->run();