InputOutputPointer is the right interface.
[core.git] / inc / classes / main / file_directories / stack / class_StackFile.php
index 23ffe84257405215b6e22cb8280103f7f43eae56..138be4918411857ece1db57ffe29c8ed5ab6c856 100644 (file)
@@ -21,7 +21,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
-class StackFile extends BaseFile implements SeekableWritableFileIterator {
+class StackFile extends BaseFile implements InputOutputPointer {
        /**
         * Protected constructor
         *
@@ -35,15 +35,97 @@ class StackFile extends BaseFile implements SeekableWritableFileIterator {
        /**
         * Creates an instance of this File class and prepares it for usage
         *
+        * @param       $fileName               Name of the stack file
         * @return      $fileInstance   An instance of this File class
         */
-       public final static function createStackFile () {
+       public final static function createStackFile ($fileName) {
                // Get a new instance
                $fileInstance = new StackFile();
 
+               // Init this abstract file
+               $fileInstance->initFile($fileName);
+
                // Return the prepared instance
                return $fileInstance;
        }
+
+       /**
+        * Determines seek position
+        *
+        * @return      $seekPosition   Current seek position
+        * @todo        0% done
+        */
+       public final function determineSeekPosition () {
+               $this->partialStub('Unfinished method.');
+       }
+
+       /**
+        * Seek to given offset (default) or other possibilities as fseek() gives.
+        *
+        * @param       $offset         Offset to seek to (or used as "base" for other seeks)
+        * @param       $whence         Added to offset (default: only use offset to seek to)
+        * @return      $status         Status of file seek: 0 = success, -1 = failed
+        * @todo        0% done
+        */
+       public function seek ($offset, $whence = SEEK_SET) {
+               $this->partialStub('Unfinished method.');
+       }
+
+       /**
+        * Size of this file
+        *
+        * @return      $size   Size (in bytes) of file
+        * @todo        Handle seekStatus
+        * @todo        0% done
+        */
+       public function size () {
+               $this->partialStub('Unfinished method.');
+       }
+
+       /**
+        * Read data a file pointer
+        *
+        * @return      mixed   The result of fread()
+        * @throws      NullPointerException    If the file pointer instance
+        *                                                                      is not set by setPointer()
+        * @throws      InvalidResourceException        If there is being set
+        */
+       public function readFromFile () {
+               $this->partialStub('Unfinished method.');
+       }
+
+       /**
+        * Reads given amount of bytes from file.
+        *
+        * @param       $bytes  Amount of bytes to read
+        * @return      $data   Data read from file
+        */
+       public function read ($bytes) {
+               $this->partialStub('bytes=' . $bytes);
+       }
+
+       /**
+        * Write data to a file pointer
+        *
+        * @param       $dataStream             The data stream we shall write to the file
+        * @return      mixed                   Number of writes bytes or FALSE on error
+        * @throws      NullPointerException    If the file pointer instance
+        *                                                                      is not set by setPointer()
+        * @throws      InvalidResourceException        If there is being set
+        *                                                                                      an invalid file resource
+        */
+       public function writeToFile ($dataStream) {
+               $this->partialStub('dataStream=' . $dataStream);
+       }
+
+       /**
+        * Rewinds to the beginning of the file
+        *
+        * @return      $status         Status of this operation
+        */
+       public function rewind () {
+               $this->partialStub('Unfinished method.');
+       }
 }
 
 // [EOF]