X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fclass_BaseFrameworkSystem.php;h=e34ebe98e548d660bc7c33f483f57a26a7398818;hp=aa64808ec799516afa717c92c517f88d6642829f;hb=f714ea9c70eebbb5a7687d8d871f52050c66e220;hpb=8dc5316bec97fe71f141cde5f34c471eff02c689 diff --git a/inc/classes/main/class_BaseFrameworkSystem.php b/inc/classes/main/class_BaseFrameworkSystem.php index aa64808e..e34ebe98 100644 --- a/inc/classes/main/class_BaseFrameworkSystem.php +++ b/inc/classes/main/class_BaseFrameworkSystem.php @@ -134,15 +134,40 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { private $helperInstance = null; /** - * An instance of a source + * An instance of a Sourceable class */ private $sourceInstance = null; + /** + * An instance of a InputStreamable class + */ + private $inputStreamInstance = null; + + /** + * An instance of a OutputStreamable class + */ + private $outputStreamInstance = null; + + /** + * Networkable handler instance + */ + private $handlerInstance = null; + + /** + * Visitor handler instance + */ + private $visitorInstance = null; + /** * The real class name */ private $realClass = 'BaseFrameworkSystem'; + /** + * An instance of a database wrapper class + */ + private $wrapperInstance = null; + /** * Thousands seperator */ @@ -166,6 +191,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /*********************** * Exception codes.... * ***********************/ + // @todo Try to clean these constants up const EXCEPTION_IS_NULL_POINTER = 0x001; const EXCEPTION_IS_NO_OBJECT = 0x002; @@ -1352,8 +1378,8 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Get current time and add idle time $sleepUntil = $this->getMilliTime() + abs($milliSeconds) / 1000; - // New PHP 5.1.0 function found - $hasSlept = time_sleep_until($sleepUntil); + // New PHP 5.1.0 function found, ignore errors + $hasSlept = @time_sleep_until($sleepUntil); } else { // My Sun Station doesn't have that function even with latest PHP // package. :( @@ -1565,12 +1591,79 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { } /** - * Getter for a Sourceable instance + * Getter for a InputStreamable instance * - * @param $sourceInstance The Sourceable instance + * @param $inputStreamInstance The InputStreamable instance + */ + protected final function getInputStreamInstance () { + return $this->inputStreamInstance; + } + + /** + * Setter for a InputStreamable instance + * + * @param $inputStreamInstance The InputStreamable instance + * @return void + */ + protected final function setInputStreamInstance (InputStreamable $inputStreamInstance) { + $this->inputStreamInstance = $inputStreamInstance; + } + + /** + * Getter for a OutputStreamable instance + * + * @param $outputStreamInstance The OutputStreamable instance + */ + protected final function getOutputStreamInstance () { + return $this->outputStreamInstance; + } + + /** + * Setter for a OutputStreamable instance + * + * @param $outputStreamInstance The OutputStreamable instance + * @return void + */ + protected final function setOutputStreamInstance (OutputStreamable $outputStreamInstance) { + $this->outputStreamInstance = $outputStreamInstance; + } + + /** + * Setter for handler instance + * + * @param $handlerInstance A Networkable instance + * @return void */ - protected final function getSourceInstance () { - return $this->sourceInstance; + protected final function setHandlerInstance (Networkable $handlerInstance) { + $this->handlerInstance = $handlerInstance; + } + + /** + * Getter for handler instance + * + * @return $handlerInstance A Networkable instance + */ + protected final function getHandlerInstance () { + return $this->handlerInstance; + } + + /** + * Setter for visitor instance + * + * @param $visitorInstance A Visitor instance + * @return void + */ + protected final function setVisitorInstance (Visitor $visitorInstance) { + $this->visitorInstance = $visitorInstance; + } + + /** + * Getter for visitor instance + * + * @return $visitorInstance A Visitor instance + */ + protected final function getVisitorInstance () { + return $this->visitorInstance; } /** @@ -1602,7 +1695,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @param $hex Hexadecimal string * @return $dec Decimal number */ - public final function hex2dec ($hex) { + protected function hex2dec ($hex) { // Convert to all lower-case $hex = strtolower($hex); @@ -1631,10 +1724,14 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * This work is based on comment #97756 on php.net documentation page at: * * - * @param $dec Decimal number, even with negative sign + * @param $dec Decimal number, even with negative sign + * @param $maxLength Optional maximum length of the string * @return $hex Hexadecimal string */ - public final function dec2hex ($dec) { + protected function dec2hex ($dec, $maxLength = 0) { + // maxLength can be zero or devideable by 2 + assert(($maxLength == 0) || (($maxLength % 2) == 0)); + // Detect sign (negative/positive numbers) $sign = ''; if ($dec < 0) { @@ -1653,10 +1750,12 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * We need hexadecimal strings with leading zeros if the length cannot * be divided by 2 */ - if ((strlen($hex) % 2) != 0) { - // Prepend a zero + if ($maxLength > 0) { + // Prepend more zeros + $hex = $this->prependStringToString($hex, '0', $maxLength); + } elseif ((strlen($hex) % 2) != 0) { $hex = '0' . $hex; - } // END - if + } // Return the hexadecimal string return $sign . $hex; @@ -1668,7 +1767,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @param $asc The ASCII string to be converted * @return $dec Decimal number */ - public final function asc2dec ($asc) { + protected function asc2dec ($asc) { // Convert it into a hexadecimal number $hex = bin2hex($asc); @@ -1682,10 +1781,10 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { /** * Converts a decimal number into an ASCII string. * - * @param $dec Decimal number + * @param $dec Decimal number * @return $asc An ASCII string */ - public final function dec2asc ($dec) { + protected function dec2asc ($dec) { // First convert the number into a hexadecimal string $hex = $this->dec2hex($dec); @@ -1703,8 +1802,9 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { * @param $hex Hexadecimal string * @return $asc An ASCII string */ - public final function hex2asc ($hex) { + protected function hex2asc ($hex) { // Check for length, it must be devideable by 2 + //* DEBUG: */ $this->debugOutput('hex='.$hex); assert((strlen($hex) % 2) == 0); // Walk the string @@ -1720,6 +1820,55 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface { // Return the final string return $asc; } + + /** + * Prepends a given string $prepend to $str with a given total length + * + * @param $str Given original string which should be prepended + * @param $prepend The string to prepend + * @param $length Total length of the final string + * @return $strFinal Final prepended string + */ + protected function prependStringToString ($str, $prepend, $length) { + // Set final string to original string by default + $strFinal = $str; + + // Can it devided + if (strlen($str) < $length) { + // Difference between total length and length of original string + $diff = $length - strlen($str); + + // Prepend the string + $prepend = str_repeat($prepend, ($diff / strlen($prepend) + 1)); + + // Make sure it will definedly fit + assert(strlen($prepend) >= $diff); + + // Cut it a little down + $prepend = substr($prepend, 0, $diff); + //* DEBUG: */ $this->debugOutput('prepend('.strlen($prepend).')='.$prepend.',diff='.$diff.',length='.$length); + + // Construct the final prepended string + $strFinal = $prepend . $str; + } // END - if + + // Return it + return $strFinal; + } + + /** + * Checks wether the given encoded data was encoded with Base64 + * + * @param $encodedData Encoded data we shall check + * @return $isBase64 Wether the encoded data is Base64 + */ + protected function isBase64Encoded ($encodedData) { + // Determine it + $isBase64 = (@base64_decode($encodedData, true) !== false); + + // Return it + return $isBase64; + } } // [EOF]