*
* @author Roland Haeder <webmaster@shipsimu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2013 Core Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2014 Core Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.shipsimu.org
*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
+ /**
+ * Length of output from hash()
+ */
+ private static $hashLength = NULL;
+
/**
* The real class name
*/
/**
* Instance of the stacker
*/
- private $stackerInstance = NULL;
+ private $stackInstance = NULL;
/**
* A Compressor instance
private $parserInstance = NULL;
/**
- * A ProtocolHandler instance
+ * A HandleableProtocol instance
*/
private $protocolInstance = NULL;
private $sourceInstance = NULL;
/**
- * An instance of a InputStreamable class
+ * An instance of a InputStream class
*/
private $inputStreamInstance = NULL;
/**
- * An instance of a OutputStreamable class
+ * An instance of a OutputStream class
*/
private $outputStreamInstance = NULL;
*/
private $wrapperInstance = NULL;
+ /**
+ * An instance of a file I/O pointer class (not handler)
+ */
+ private $pointerInstance = NULL;
+
+ /**
+ * An instance of an Indexable class
+ */
+ private $indexInstance = NULL;
+
+ /**
+ * An instance of a Block class
+ */
+ private $blockInstance = NULL;
+
+ /**
+ * A Minable instance
+ */
+ private $minableInstance = NULL;
+
+ /**
+ * A FrameworkDirectory instance
+ */
+ private $directoryInstance = NULL;
+
+ /**
+ * Listener instance
+ */
+ private $listenerInstance = NULL;
+
/**
* Thousands separator
*/
*/
private $socketResource = FALSE;
+ /**
+ * Regular expression to use for validation
+ */
+ private $regularExpression = '';
+
/**
* Package data
*/
$this->debugBackTrace(sprintf('Tried to set a missing field. name=%s, value[%s]=%s',
$name,
gettype($value),
- $value
+ print_r($value, TRUE)
));
}
/**
* Setter for stacker instance
*
- * @param $stackerInstance An instance of an stacker
+ * @param $stackInstance An instance of an stacker
* @return void
*/
- public final function setStackerInstance (Stackable $stackerInstance) {
- $this->stackerInstance = $stackerInstance;
+ public final function setStackInstance (Stackable $stackInstance) {
+ $this->stackInstance = $stackInstance;
}
/**
* Getter for stacker instance
*
- * @return $stackerInstance An instance of an stacker
+ * @return $stackInstance An instance of an stacker
*/
- public final function getStackerInstance () {
- return $this->stackerInstance;
+ public final function getStackInstance () {
+ return $this->stackInstance;
}
/**
}
/**
- * Setter for ProtocolHandler instance
+ * Setter for HandleableProtocol instance
*
- * @param $protocolInstance An instance of an ProtocolHandler
+ * @param $protocolInstance An instance of an HandleableProtocol
* @return void
*/
- public final function setProtocolInstance (ProtocolHandler $protocolInstance = NULL) {
+ public final function setProtocolInstance (HandleableProtocol $protocolInstance = NULL) {
$this->protocolInstance = $protocolInstance;
}
/**
- * Getter for ProtocolHandler instance
+ * Getter for HandleableProtocol instance
*
- * @return $protocolInstance An instance of an ProtocolHandler
+ * @return $protocolInstance An instance of an HandleableProtocol
*/
public final function getProtocolInstance () {
return $this->protocolInstance;
return $this->socketResource;
}
+ /**
+ * Setter for regular expression
+ *
+ * @param $regularExpression A valid regular expression
+ * @return void
+ */
+ public final function setRegularExpression ($regularExpression) {
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . '::' . __FUNCTION__ . ': regularExpression=' . $regularExpression . ',previous[' . gettype($this->regularExpression) . ']=' . $this->regularExpression);
+ $this->regularExpression = $regularExpression;
+ }
+
+ /**
+ * Getter for regular expression
+ *
+ * @return $regularExpression A valid regular expression
+ */
+ public final function getRegularExpression () {
+ //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . '::' . __FUNCTION__ . ': regularExpression[' . gettype($this->regularExpression) . ']=' . $this->regularExpression);
+ return $this->regularExpression;
+ }
+
/**
* Setter for helper instance
*
}
/**
- * Getter for a InputStreamable instance
+ * Getter for a InputStream instance
*
- * @param $inputStreamInstance The InputStreamable instance
+ * @param $inputStreamInstance The InputStream instance
*/
protected final function getInputStreamInstance () {
return $this->inputStreamInstance;
}
/**
- * Setter for a InputStreamable instance
+ * Setter for a InputStream instance
*
- * @param $inputStreamInstance The InputStreamable instance
+ * @param $inputStreamInstance The InputStream instance
* @return void
*/
- protected final function setInputStreamInstance (InputStreamable $inputStreamInstance) {
+ protected final function setInputStreamInstance (InputStream $inputStreamInstance) {
$this->inputStreamInstance = $inputStreamInstance;
}
/**
- * Getter for a OutputStreamable instance
+ * Getter for a OutputStream instance
*
- * @param $outputStreamInstance The OutputStreamable instance
+ * @param $outputStreamInstance The OutputStream instance
*/
protected final function getOutputStreamInstance () {
return $this->outputStreamInstance;
}
/**
- * Setter for a OutputStreamable instance
+ * Setter for a OutputStream instance
*
- * @param $outputStreamInstance The OutputStreamable instance
+ * @param $outputStreamInstance The OutputStream instance
* @return void
*/
- protected final function setOutputStreamInstance (OutputStreamable $outputStreamInstance) {
+ protected final function setOutputStreamInstance (OutputStream $outputStreamInstance) {
$this->outputStreamInstance = $outputStreamInstance;
}
return $this->iteratorInstance;
}
+ /**
+ * Setter for FilePointer instance
+ *
+ * @param $pointerInstance An instance of an FilePointer class
+ * @return void
+ */
+ protected final function setPointerInstance (FilePointer $pointerInstance) {
+ $this->pointerInstance = $pointerInstance;
+ }
+
+ /**
+ * Getter for FilePointer instance
+ *
+ * @return $pointerInstance An instance of an FilePointer class
+ */
+ public final function getPointerInstance () {
+ return $this->pointerInstance;
+ }
+
+ /**
+ * Setter for Indexable instance
+ *
+ * @param $indexInstance An instance of an Indexable class
+ * @return void
+ */
+ protected final function setIndexInstance (Indexable $indexInstance) {
+ $this->indexInstance = $indexInstance;
+ }
+
+ /**
+ * Getter for Indexable instance
+ *
+ * @return $indexInstance An instance of an Indexable class
+ */
+ public final function getIndexInstance () {
+ return $this->indexInstance;
+ }
+
+ /**
+ * Setter for Block instance
+ *
+ * @param $blockInstance An instance of an Block class
+ * @return void
+ */
+ protected final function setBlockInstance (Block $blockInstance) {
+ $this->blockInstance = $blockInstance;
+ }
+
+ /**
+ * Getter for Block instance
+ *
+ * @return $blockInstance An instance of an Block class
+ */
+ public final function getBlockInstance () {
+ return $this->blockInstance;
+ }
+
+ /**
+ * Setter for Minable instance
+ *
+ * @param $minableInstance A Minable instance
+ * @return void
+ */
+ protected final function setMinableInstance (Minable $minableInstance) {
+ $this->minableInstance = $minableInstance;
+ }
+
+ /**
+ * Getter for minable instance
+ *
+ * @return $minableInstance A Minable instance
+ */
+ protected final function getMinableInstance () {
+ return $this->minableInstance;
+ }
+
+ /**
+ * Setter for FrameworkDirectory instance
+ *
+ * @param $directoryInstance A FrameworkDirectoryPointer instance
+ * @return void
+ */
+ protected final function setDirectoryInstance (FrameworkDirectory $directoryInstance) {
+ $this->directoryInstance = $directoryInstance;
+ }
+
+ /**
+ * Getter for FrameworkDirectory instance
+ *
+ * @return $directoryInstance A FrameworkDirectory instance
+ */
+ protected final function getDirectoryInstance () {
+ return $this->directoryInstance;
+ }
+
+ /**
+ * Setter for listener instance
+ *
+ * @param $listenerInstance A Listenable instance
+ * @return void
+ */
+ protected final function setListenerInstance (Listenable $listenerInstance) {
+ $this->listenerInstance = $listenerInstance;
+ }
+
+ /**
+ * Getter for listener instance
+ *
+ * @return $listenerInstance A Listenable instance
+ */
+ protected final function getListenerInstance () {
+ return $this->listenerInstance;
+ }
+
/**
* Checks whether an object equals this object. You should overwrite this
* method to implement own equality checks
$fieldValue = $fieldArray[$fieldName];
} else {
// Missing field entry, may require debugging
- self::createDebugInstance(__CLASS__)->debugOutput($this->__toString() . ':fieldname=' . $fieldName . ' not found!');
+ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']:fieldName=' . $fieldName . ' not found!');
}
// Return it
}
/**
- * Hashes a given string with a simple but stronger hash function (no salts)
+ * Hashes a given string with a simple but stronger hash function (no salt)
+ * and hex-encode it.
*
* @param $str The string to be hashed
* @return $hash The hash from string $str
*/
- public function hashString ($str) {
+ public static final function hash ($str) {
// Hash given string with (better secure) hasher
- $hash = mhash(MHASH_SHA256, $str);
+ $hash = bin2hex(mhash(MHASH_SHA256, $str));
// Return it
return $hash;
}
+ /**
+ * "Getter" for length of hash() output. This will be "cached" to speed up
+ * things.
+ *
+ * @return $length Length of hash() output
+ */
+ public static final function getHashLength () {
+ // Is it cashed?
+ if (is_null(self::$hashLength)) {
+ // No, then hash a string and save its length.
+ self::$hashLength = strlen(self::hash('abc123'));
+ } // END - if
+
+ // Return it
+ return self::$hashLength;
+ }
+
/**
* Checks whether the given number is really a number (only chars 0-9).
*