123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- /**
- * This class defines the interface for all elgg data repositories.
- *
- * @package Elgg.Core
- * @subpackage DataStorage
- * @class \ElggFilestore
- */
- abstract class ElggFilestore {
- /**
- * Attempt to open the file $file for storage or writing.
- *
- * @param \ElggFile $file A file
- * @param string $mode "read", "write", "append"
- *
- * @return mixed A handle to the opened file or false on error.
- */
- abstract public function open(\ElggFile $file, $mode);
- /**
- * Write data to a given file handle.
- *
- * @param mixed $f The file handle - exactly what this is depends on the file system
- * @param string $data The binary string of data to write
- *
- * @return int Number of bytes written.
- */
- abstract public function write($f, $data);
- /**
- * Read data from a filestore.
- *
- * @param mixed $f The file handle
- * @param int $length Length in bytes to read.
- * @param int $offset The optional offset.
- *
- * @return mixed String of data or false on error.
- */
- abstract public function read($f, $length, $offset = 0);
- /**
- * Seek a given position within a file handle.
- *
- * @param mixed $f The file handle.
- * @param int $position The position.
- *
- * @return void
- */
- abstract public function seek($f, $position);
- /**
- * Return a whether the end of a file has been reached.
- *
- * @param mixed $f The file handle.
- *
- * @return boolean
- */
- abstract public function eof($f);
- /**
- * Return the current position in an open file.
- *
- * @param mixed $f The file handle.
- *
- * @return int
- */
- abstract public function tell($f);
- /**
- * Close a given file handle.
- *
- * @param mixed $f The file handle
- *
- * @return bool
- */
- abstract public function close($f);
- /**
- * Delete the file associated with a given file handle.
- *
- * @param \ElggFile $file The file
- *
- * @return bool
- */
- abstract public function delete(\ElggFile $file);
- /**
- * Return the size in bytes for a given file.
- *
- * @param \ElggFile $file The file
- *
- * @return int
- */
- abstract public function getFileSize(\ElggFile $file);
- /**
- * Return the filename of a given file as stored on the filestore.
- *
- * @param \ElggFile $file The file
- *
- * @return string
- */
- abstract public function getFilenameOnFilestore(\ElggFile $file);
- /**
- * Get the filestore's creation parameters as an associative array.
- * Used for serialisation and for storing the creation details along side a file object.
- *
- * @return array
- */
- abstract public function getParameters();
- /**
- * Set the parameters from the associative array produced by $this->getParameters().
- *
- * @param array $parameters A list of parameters
- *
- * @return bool
- */
- abstract public function setParameters(array $parameters);
- /**
- * Get the contents of the whole file.
- *
- * @param mixed $file The file handle.
- *
- * @return mixed The file contents.
- */
- abstract public function grabFile(\ElggFile $file);
- /**
- * Return whether a file physically exists or not.
- *
- * @param \ElggFile $file The file
- *
- * @return bool
- */
- abstract public function exists(\ElggFile $file);
- }
|