nulib/php/src_file/IReader.php

53 lines
1.4 KiB
PHP

<?php
namespace nulib\file;
use nulib\os\EOFException;
use nulib\os\IOException;
/**
* Interface IReader: un objet depuis lequel on peut lire des données
*/
interface IReader extends _IFile {
/** @throws IOException */
function fread(int $length): string;
/** @throws IOException */
function fgets(): string;
/** @throws IOException */
function fpassthru(): int;
/**
* lire la prochaine ligne. la ligne est retournée *sans* le caractère de fin
* de ligne [\r]\n
*
* @throws EOFException si plus aucune ligne n'est disponible
* @throws IOException si une autre erreur se produit
*/
function readLine(): ?string;
/**
* essayer de verrouiller le fichier en lecture. retourner true si l'opération
* réussit. dans ce cas, il faut appeler {@link getReader()} avec l'argument
* true
*/
function canRead(): bool;
/**
* verrouiller en mode partagé puis retourner un objet permettant de lire le
* fichier.
*/
function getReader(bool $lockedByCanRead=false): IReader;
/**
* lire tout le contenu du fichier en une seule fois, puis, si $close==true,
* le fermer
*
* @throws IOException si une erreur se produit
*/
function getContents(bool $close=true, bool $lockedByCanRead=false): string;
/** désérialiser le contenu du fichier, puis, si $close===true, le fermer */
function unserialize(?array $options=null, bool $close=true, bool $lockedByCanRead=false);
}