4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Process\Pipes
;
15 * PipesInterface manages descriptors and pipes for the use of proc_open.
17 * @author Romain Neutron <imprec@gmail.com>
21 interface PipesInterface
23 const CHUNK_SIZE
= 16384;
26 * Returns an array of descriptors for the use of proc_open.
30 public function getDescriptors();
33 * Returns an array of filenames indexed by their related stream in case these pipes use temporary files.
37 public function getFiles();
40 * Reads data in file handles and pipes.
42 * @param bool $blocking Whether to use blocking calls or not
43 * @param bool $close Whether to close pipes if they've reached EOF
45 * @return string[] An array of read data indexed by their fd
47 public function readAndWrite($blocking, $close = false);
50 * Returns if the current state has open file handles or pipes.
54 public function areOpen();
57 * Returns if pipes are able to read output.
61 public function haveReadSupport();
64 * Closes file handles and pipes.
66 public function close();