From: Roland Haeder Date: Tue, 20 May 2014 21:03:07 +0000 (+0200) Subject: Added abstraction classes for file-based stacks and index files, some setter X-Git-Url: https://git.mxchange.org/?p=core.git;a=commitdiff_plain;h=3433b4b31083b8d3db3d2a30676dd45ddc7321c8 Added abstraction classes for file-based stacks and index files, some setter have now access level 'protected' as 'public' was not a such good idea. Signed-off-by: Roland Häder --- diff --git a/inc/classes/main/file_directories/class_BaseFile.php b/inc/classes/main/file_directories/class_BaseFile.php new file mode 100644 index 00000000..bcc61661 --- /dev/null +++ b/inc/classes/main/file_directories/class_BaseFile.php @@ -0,0 +1,123 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class BaseFile extends BaseFrameworkSystem { + /** + * The current file we are working in + */ + private $fileName = ''; + + /** + * Protected constructor + * + * @param $className Name of the class + * @return void + */ + protected function __construct ($className) { + // Call parent constructor + parent::__construct($className); + } + + /** + * Destructor for cleaning purposes, etc + * + * @return void + */ + public final function __destruct() { + // Try to close a file + $this->closeFile(); + + // Call the parent destructor + parent::__destruct(); + } + + /** + * Close a file source and set it's instance to null and the file name + * to empty + * + * @return void + * @todo ~10% done? + */ + public function closeFile () { + $this->partialStub('Unfinished method.'); + + // Remove file name + $this->setFileName(''); + } + + /** + * Setter for file name + * + * @param $fileName The new file name + * @return void + */ + protected final function setFileName ($fileName) { + $fileName = (string) $fileName; + $this->fileName = $fileName; + } + + /** + * Getter for file name + * + * @return $fileName The current file name + */ + public final function getFileName () { + return $this->fileName; + } + + /** + * 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.'); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/file_directories/class_BaseFileIo.php b/inc/classes/main/file_directories/class_BaseFileIo.php index 16e905dd..cd07f7fb 100644 --- a/inc/classes/main/file_directories/class_BaseFileIo.php +++ b/inc/classes/main/file_directories/class_BaseFileIo.php @@ -89,7 +89,7 @@ class BaseFileIo extends BaseFrameworkSystem { * @param $filePointer File resource * @return void */ - public final function setPointer ($filePointer) { + protected final function setPointer ($filePointer) { $this->filePointer = $filePointer; } @@ -109,7 +109,7 @@ class BaseFileIo extends BaseFrameworkSystem { * @param $fileName The new file name * @return void */ - public final function setFileName ($fileName) { + protected final function setFileName ($fileName) { $fileName = (string) $fileName; $this->fileName = $fileName; } diff --git a/inc/classes/main/file_directories/index/.htaccess b/inc/classes/main/file_directories/index/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/main/file_directories/index/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/file_directories/index/class_IndexFile.php b/inc/classes/main/file_directories/index/class_IndexFile.php new file mode 100644 index 00000000..2859fd84 --- /dev/null +++ b/inc/classes/main/file_directories/index/class_IndexFile.php @@ -0,0 +1,50 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class IndexFile extends BaseFile implements SeekableWritableFileIterator { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this File class and prepares it for usage + * + * @return $fileInstance An instance of this File class + */ + public final static function createIndexFile () { + // Get a new instance + $fileInstance = new IndexFile(); + + // Return the prepared instance + return $fileInstance; + } +} + +// [EOF] +?> diff --git a/inc/classes/main/file_directories/stack/.htaccess b/inc/classes/main/file_directories/stack/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/main/file_directories/stack/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/file_directories/stack/class_StackFile.php b/inc/classes/main/file_directories/stack/class_StackFile.php new file mode 100644 index 00000000..23ffe842 --- /dev/null +++ b/inc/classes/main/file_directories/stack/class_StackFile.php @@ -0,0 +1,50 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +class StackFile extends BaseFile implements SeekableWritableFileIterator { + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } + + /** + * Creates an instance of this File class and prepares it for usage + * + * @return $fileInstance An instance of this File class + */ + public final static function createStackFile () { + // Get a new instance + $fileInstance = new StackFile(); + + // Return the prepared instance + return $fileInstance; + } +} + +// [EOF] +?>