Some rewrites
[core.git] / inc / classes / main / class_BaseFrameworkSystem.php
index 585e93771f29ec9d3c4ae7ce2054cd180f0a42eb..77390bc205f7851427ec7c2c3ff049f5c30ffbb9 100644 (file)
@@ -1004,6 +1004,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
         * @return      void
         */
        public final function setSocketResource ($socketResource) {
+               //* NOISY-DEBUG: */ $this->debugOutput($this->__toString() . '::' . __FUNCTION__ . ': socketResource=' . $socketResource . ',previous[' . gettype($this->socketResource) . ']=' . $this->socketResource);
                $this->socketResource = $socketResource;
        }
 
@@ -1012,7 +1013,8 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
         *
         * @return      $socketResource         A valid socket resource
         */
-       public function getSocketResource () {
+       public final function getSocketResource () {
+               //* NOISY-DEBUG: */ $this->debugOutput($this->__toString() . '::' . __FUNCTION__ . ': socketResource[' . gettype($this->socketResource) . ']=' . $this->socketResource);
                return $this->socketResource;
        }
 
@@ -1353,7 +1355,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
                // Is the extra message given?
                if (!empty($message)) {
                        // Then add it as well
-                       $stubMessage .= sprintf(' Message: <span id="stub_message">%s</span>', $message);
+                       $stubMessage .= ' Message: ' . $message;
                } // END - if
 
                // Debug instance is there?
@@ -1362,7 +1364,7 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
                        $this->debugOutput($stubMessage);
                } else {
                        // Trigger an error
-                       trigger_error($stubMessage . '<br />' . chr(10));
+                       trigger_error($stubMessage);
                }
        }
 
@@ -1391,41 +1393,49 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
        }
 
        /**
-        * Outputs a debug message whether to debug instance (should be set!) or dies with or pints the message
+        * Outputs a debug message whether to debug instance (should be set!) or
+        * dies with or ptints the message. Do NEVER EVER rewrite the die() call to
+        * ApplicationEntryPoint::app_die(), this would cause an endless loop.
         *
         * @param       $message        Message we shall send out...
-        * @param       $doPrint        Whether we shall print or die here which first is the default
+        * @param       $doPrint        Whether print or die here (default: print)
+        * @paran       $stripTags      Whether to strip tags (default: false)
         * @return      void
         */
-       public function debugOutput ($message, $doPrint = true) {
-               // Get debug instance
-               $debugInstance = $this->getDebugInstance();
+       public function debugOutput ($message, $doPrint = true, $stripTags = false) {
+               // Set debug instance to NULL
+               $debugInstance = NULL;
+
+               // Try it:
+               try {
+                       // Get debug instance
+                       $debugInstance = $this->getDebugInstance();
+               } catch (NullPointerException $e) {
+                       // The debug instance is not set (yet)
+               }
 
                // Is the debug instance there?
                if (is_object($debugInstance)) {
                        // Use debug output handler
-                       $debugInstance->output($message);
+                       $debugInstance->output($message, $stripTags);
 
                        if ($doPrint === false) {
                                // Die here if not printed
                                die();
                        } // END - if
                } else {
+                       // Are debug times enabled?
+                       if ($this->getConfigInstance()->getConfigEntry('debug_output_timings') == 'Y') {
+                               // Prepent it
+                               $message = $this->getPrintableExecutionTime() . $message;
+                       } // END - if
+
                        // Put directly out
                        if ($doPrint === true) {
-                               // Are debug times enabled?
-                               if ($this->getConfigInstance()->getConfigEntry('debug_output_timings') == 'Y') {
-                                       // Output it first
-                                       print($this->getPrintableExecutionTime());
-                               } // END - if
-
                                // Print message
                                print($message . chr(10));
                        } else {
-                               /*
-                                * BIG FAT NOTE: Do NEVER rewrite this to app_die(), this will
-                                * cause an endless loop.
-                                */
+                               // Die here
                                die($message);
                        }
                }
@@ -1628,11 +1638,17 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
                $fieldArray = $resultInstance->current();
                //* DEBUG: */ $this->debugOutput($fieldName.':<pre>'.print_r($fieldArray, true).'</pre>');
 
+               // Convert dashes to underscore
+               $fieldName = $this->convertDashesToUnderscores($fieldName);
+
                // Does the field exist?
                if (isset($fieldArray[$fieldName])) {
                        // Get it
                        $fieldValue = $fieldArray[$fieldName];
-               } // END - if
+               } else {
+                       // Missing field entry, may require debugging
+                       $this->debugOutput($this->__toString() . ':fieldname=' . $fieldName . ' not found!');
+               }
 
                // Return it
                return $fieldValue;
@@ -2028,6 +2044,27 @@ class BaseFrameworkSystem extends stdClass implements FrameworkInterface {
                // Return result
                return $ret;
        }
+
+       /**
+        * Checks whether the given hexadecimal number is really a hex-number (only chars 0-9,a-f).
+        *
+        * @param       $num    A string consisting only chars between 0 and 9
+        * @param       $assertMismatch         Whether to assert mismatches
+        * @return      $ret    The (hopefully) secured hext-numbered value
+        */
+       public function hexval ($num, $assertMismatch = false) {
+               // Filter all numbers out
+               $ret = preg_replace('/[^0123456789abcdefABCDEF]/', '', $num);
+
+               // Assert only if requested
+               if ($assertMismatch === true) {
+                       // Has the whole value changed?
+                       assert(('' . $ret . '' != '' . $num . '') && (!is_null($num)));
+               } // END - if
+
+               // Return result
+               return $ret;
+       }
 }
 
 // [EOF]