Continued with file-based stacks:
authorRoland Haeder <roland@mxchange.org>
Tue, 13 May 2014 21:09:09 +0000 (23:09 +0200)
committerRoland Haeder <roland@mxchange.org>
Tue, 13 May 2014 21:11:09 +0000 (23:11 +0200)
- added first draft of file-based stacks (hash sums are missing)
- added initial base class and stub for file-based stacks
- ignored chash.pos (file created by chash.php)
- ignored any backup files (*.*~)

Signed-off-by: Roland H├Ąder <roland@mxchange.org>
.gitignore
contrib/file_stack/format.txt [new file with mode: 0644]
inc/classes/main/file_stack/.htaccess [new file with mode: 0644]
inc/classes/main/file_stack/class_ [new file with mode: 0644]
inc/classes/main/file_stack/class_BaseFileStack.php [new file with mode: 0644]

index fd0d0d9..e4688a2 100644 (file)
@@ -1,3 +1,4 @@
+contrib/chash/chash.pos
 contrib/lfdb2/*.bin*
 contrib/lfdb2/*.out*
 contrib/mindmaps/*.png
@@ -6,3 +7,4 @@ inc/config/config-local.php
 /nbproject
 templates/_compiled/*.*
 templates/images/_cache/*.*
+*.*~
diff --git a/contrib/file_stack/format.txt b/contrib/file_stack/format.txt
new file mode 100644 (file)
index 0000000..12c1886
--- /dev/null
@@ -0,0 +1,20 @@
+A file-based stack:
+===================
+
+This is the format for a file-based stack which works as any Stackable class.
+
+General made up:
+
+Purpose: | "magic"   | separator | count    | position      | separator |
+---------+-----------+-----------+----------+---------------+-----------+
+Bytes:   | 9         | 1         | 20 (hex) | 2 - n^2 (hex) | 1         |
+---------+-----------+-----------+----------+---------------+-----------+
+Example: | STACKv1.0 |    ???    | 0...ff   | 01            |    ???    |
+
+Continued:
+
+Purpose: | name 0 | entry 0    | separator | name 1 | entry 1    | separator | name n | entry n    | EOF |
+---------+--------+------------+-----------+--------+------------+-----------+--------+------------+-----+
+Bytes:   | 10     | 1-n (pack) | 1         | 10     | 1-n (pack) | 1         | 10     | 1-n (pack) | 1   |
+---------+--------+------------+-----------+--------+------------+-----------+--------+------------+-----+
+Example: | foo    |     ...    |    ???    | bar    |     ...    |    ???    | bar    |     ...    | EOF |
diff --git a/inc/classes/main/file_stack/.htaccess b/inc/classes/main/file_stack/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/classes/main/file_stack/class_ b/inc/classes/main/file_stack/class_
new file mode 100644 (file)
index 0000000..b335965
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/**
+ * A ??? file-based stack
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2014 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 <http://www.gnu.org/licenses/>.
+ */
+class ???FileStack extends BaseFileStack implements Stackable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this class
+        *
+        * @return      $stackInstance  An instance of a Stackable class
+        */
+       public final static function create???FileStack () {
+               // Get new instance
+               $stackInstance = new ???FileStack();
+
+               // Return the prepared instance
+               return $stackInstance;
+       }
+}
+
+// [EOF]
+?>
diff --git a/inc/classes/main/file_stack/class_BaseFileStack.php b/inc/classes/main/file_stack/class_BaseFileStack.php
new file mode 100644 (file)
index 0000000..7c4c91e
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * A general file-based stack class
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Hub 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 <http://www.gnu.org/licenses/>.
+ */
+class BaseFileStack extends BaseFrameworkSystem {
+       /**
+        * Protected constructor
+        *
+        * @param       $className      Name of the class
+        * @return      void
+        */
+       protected function __construct ($className) {
+               // Call parent constructor
+               parent::__construct($className);
+       }
+}
+
+// [EOF]
+?>