1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\Process\Pipes; 13 14/** 15 * PipesInterface manages descriptors and pipes for the use of proc_open. 16 * 17 * @author Romain Neutron <imprec@gmail.com> 18 * 19 * @internal 20 */ 21interface PipesInterface 22{ 23 const CHUNK_SIZE = 16384; 24 25 /** 26 * Returns an array of descriptors for the use of proc_open. 27 * 28 * @return array 29 */ 30 public function getDescriptors(); 31 32 /** 33 * Returns an array of filenames indexed by their related stream in case these pipes use temporary files. 34 * 35 * @return string[] 36 */ 37 public function getFiles(); 38 39 /** 40 * Reads data in file handles and pipes. 41 * 42 * @param bool $blocking Whether to use blocking calls or not 43 * @param bool $close Whether to close pipes if they've reached EOF 44 * 45 * @return string[] An array of read data indexed by their fd 46 */ 47 public function readAndWrite($blocking, $close = false); 48 49 /** 50 * Returns if the current state has open file handles or pipes. 51 * 52 * @return bool 53 */ 54 public function areOpen(); 55 56 /** 57 * Returns if pipes are able to read output. 58 * 59 * @return bool 60 */ 61 public function haveReadSupport(); 62 63 /** 64 * Closes file handles and pipes. 65 */ 66 public function close(); 67} 68