]> git.mxchange.org Git - hub.git/commitdiff
Updated to latest 'core' + convertToClassName() and convertDashesToUnderscores()...
authorRoland Haeder <roland@mxchange.org>
Wed, 27 May 2015 01:33:40 +0000 (03:33 +0200)
committerRoland Haeder <roland@mxchange.org>
Wed, 27 May 2015 01:33:40 +0000 (03:33 +0200)
Signed-off-by: Roland Haeder <roland@mxchange.org>
17 files changed:
application/hub/class_ApplicationHelper.php
application/hub/config-local.php-dist
application/hub/config.php
application/hub/interfaces/package/class_Receivable.php
application/hub/main/class_BaseHubSystem.php
application/hub/main/feature/.htaccess [new file with mode: 0644]
application/hub/main/feature/hubcoin_reward/.htaccess [new file with mode: 0644]
application/hub/main/feature/hubcoin_reward/class_HubcoinRewardFeature.php [new file with mode: 0644]
application/hub/main/filter/cruncher/class_CruncherInitializationFilter.php
application/hub/main/filter/miner/class_MinerInitializationFilter.php
application/hub/main/filter/miner/class_MinerPhpRequirementsFilter.php
application/hub/main/filter/node/class_NodePhpRequirementsFilter.php
application/hub/main/package/assembler/class_PackageAssembler.php
application/hub/main/package/class_NetworkPackage.php
application/hub/main/resolver/state/class_BaseStateResolver.php
application/hub/main/template/class_BaseXmlTemplateEngine.php
core

index 299754ec2c5b37bf9aee36fd6c7db32dc43cd7e2..a44051c982105d1c5bd0491a77dc1317da22e9a5 100644 (file)
@@ -163,7 +163,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica
                $responseType = self::getResponseTypeFromSystem();
 
                // Create a new request object
-               $requestInstance = ObjectFactory::createObjectByName($this->convertToClassName($response) . 'Request');
+               $requestInstance = ObjectFactory::createObjectByName(self::convertToClassName($response) . 'Request');
 
                // Remember request instance here
                $this->setRequestInstance($requestInstance);
@@ -176,7 +176,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica
                } // END - if
 
                // ... and a new response object
-               $responseClass = sprintf('%sResponse', $this->convertToClassName($response));
+               $responseClass = sprintf('%sResponse', self::convertToClassName($response));
                $responseInstance = ObjectFactory::createObjectByName($responseClass, array($this));
 
                // Remember response instance here
@@ -195,7 +195,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica
                } // END - if
 
                // Get a controller resolver
-               $resolverClass = $this->convertToClassName($this->getAppShortName() . '_' . $responseType . '_controller_resolver');
+               $resolverClass = self::convertToClassName($this->getAppShortName() . '_' . $responseType . '_controller_resolver');
                $resolverInstance = ObjectFactory::createObjectByName($resolverClass, array($commandName, $this));
 
                // Get a controller instance as well
index 381d3a3fea86ec8d6fee861d8dd754cc374b0f12..3525a612a73e50f66e6313d7ab78216b6970fb65 100644 (file)
@@ -54,5 +54,8 @@ $cfg->setConfigEntry('node_default_mode', 'regular');
 // CFG: HUB-BOOTSTRAP-NODES
 $cfg->setConfigEntry('hub_bootstrap_nodes', 'tcp://188.138.90.169:9060');
 
+// CFG: ENABLE-FEATURE-HUBCOINS-REWARD
+// Disable this if you don't want to "earn" HubCoins: $cfg->setConfigEntry('enable_feature_hubcoins_reward', 'N');
+
 // [EOF]
 ?>
index c464598599b8fafedfb0b36ffab9e025f9871864..85e59e4b6bceb5e7faadca26c8e51944e9744c0a 100644 (file)
@@ -33,6 +33,12 @@ $cfg->setConfigEntry('node_listen_port', 9060);
 // CFG: NODE-DEFAULT-MODE (can be 'regular', 'list', 'master' or 'boot', default is 'regular')
 $cfg->setConfigEntry('node_default_mode', 'regular');
 
+// CFG: ENABLE-FEATURE-HUBCOIN-REWARD
+$cfg->setConfigEntry('enable_feature_hubcoin_reward', 'Y');
+
+// CFG: FEATURE-HUBCOIN-REWARD-CLASS
+$cfg->setConfigEntry('feature_hubcoin_reward_class', 'HubcoinsRewardFeature');
+
 // CFG: TEMPLATE-ENGINE
 $cfg->setConfigEntry('tpl_engine', 'ConsoleOutput');
 
index 5cf792583721b403deb225f1696687eb88453d2c..47e72e09ebe55950e0f353e888a2b96c56746024 100644 (file)
@@ -139,7 +139,7 @@ interface Receivable extends FrameworkInterface {
         * Feeds the hash and sender (as recipient for the 'sender' reward) to the
         * miner's queue, unless the message is not a "reward claim" message as this
         * leads to an endless loop. You may wish to run the miner to get some
-        * reward ("HubCoins") for "mining" this hash.
+        * reward ("Hubcoins") for "mining" this hash.
         *
         * @param       $messageData    Array with message data
         * @return      void
index 1b2f3275afc149e94edf5b5a26e7431da53658f2..3d1bb1cea423200546a35ed85df13fa7970f4726 100644 (file)
@@ -363,7 +363,7 @@ class BaseHubSystem extends BaseFrameworkSystem {
         */
        protected function getSocketErrorHandlerFromCode ($errorCode) {
                // Create a name from translated error code
-               $handlerName = 'socketError' . $this->convertToClassName($this->translateSocketErrorCodeToName($errorCode)) . 'Handler';
+               $handlerName = 'socketError' . self::convertToClassName($this->translateSocketErrorCodeToName($errorCode)) . 'Handler';
 
                // Is the call-back method there?
                if (!method_exists($this, $handlerName)) {
diff --git a/application/hub/main/feature/.htaccess b/application/hub/main/feature/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/hub/main/feature/hubcoin_reward/.htaccess b/application/hub/main/feature/hubcoin_reward/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/hub/main/feature/hubcoin_reward/class_HubcoinRewardFeature.php b/application/hub/main/feature/hubcoin_reward/class_HubcoinRewardFeature.php
new file mode 100644 (file)
index 0000000..d1607ac
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/**
+ * A HubcoinReward Feature class
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 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 HubcoinRewardFeature extends BaseFeature implements Feature {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this Feature class and prepares it for usage
+        *
+        * @param       $appInstance            A manageable application
+        * @return      $featureInstance        An instance of this Feature class
+        */
+       public final static function createHubcoinRewardFeature (ManageableApplication $appInstance) {
+               // Get a new instance
+               $featureInstance = new HubcoinRewardFeature();
+
+               // Return the prepared instance
+               return $featureInstance;
+       }
+
+       /**
+        * Checks whether this feature can be made available to other classes.
+        *
+        * @return      $isAvailable    Whether this feature is available
+        */
+       public function isFeatureAvailable () {
+               // Testing this feature is pretty simple:
+               $isAvailable = (($this->getConfigInstance()->getConfigEntry('extension_scrypt_loaded') === 'Y') && (extension_loaded('scrypt')) && (is_callable('scrypt')));
+
+               // Return status
+               return $isAvailable;
+       }
+
+       /**
+        * Feature method 'generateHash'
+        *
+        * @param
+}
+
+// [EOF]
+?>
index ea7432ce8414def652ee277c6fd11116e6e16228..7311542db84abb6f448d055ed48b7231f7964024 100644 (file)
@@ -67,7 +67,7 @@ class CruncherInitializationFilter extends BaseCruncherFilter implements Filtera
                }
 
                // Now convert the cruncher-mode in a class name
-               $className = 'Hub' . $this->convertToClassName($cruncherMode) . 'Cruncher';
+               $className = 'Hub' . self::convertToClassName($cruncherMode) . 'Cruncher';
 
                // And try to instance it
                try {
index bf922d51fe50363e08763b28e0ddafc1a5810d2b..dec2e891dd2057d325cd9d15fc26056a094700b2 100644 (file)
@@ -67,7 +67,7 @@ class MinerInitializationFilter extends BaseMinerFilter implements Filterable {
                }
 
                // Now convert the miner-mode in a class name
-               $className = 'Hub' . $this->convertToClassName($minerMode) . 'Miner';
+               $className = 'Hub' . self::convertToClassName($minerMode) . 'Miner';
 
                // And try to instance it
                try {
index d75c2a05a510fdcb50f29d8e41b8fac4202c0ee5..dc490d2ee2b9d075d171a056c934cae4dd8bdd1c 100644 (file)
@@ -66,14 +66,14 @@ class MinerPhpRequirementsFilter extends BaseMinerFilter implements Filterable {
                        $checksFailed++;
                } // END -if
 
-               // If scrypt() is not found (ext-scrypt) then the "HubCoins reward" is not working
+               // If scrypt() is not found (ext-scrypt) then the "Hubcoins reward" is not working
                if ((extension_loaded('scrypt')) && (is_callable('scrypt'))) {
                        // Mark it as working
-                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt and a callable scrypt() function found. "HubCoin reward" feature enabled.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt and a callable scrypt() function found. "Hubcoin reward" feature enabled.');
                        $this->getConfigInstance()->setConfigEntry('extension_scrypt_loaded', TRUE);
                } else {
                        // Not working (not all have ext-scrypt installed
-                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt not found or scrypt() function not found. "HubCoin reward" feature disabled.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt not found or scrypt() function not found. "Hubcoin reward" feature disabled.');
                }
 
                // Are all tests passed?
index c63220ea0611df74e392b7247b9a3470c598006f..bea3c86621d8b5783e78b091fb1a527fdf38f3c6 100644 (file)
@@ -66,14 +66,14 @@ class NodePhpRequirementsFilter extends BaseNodeFilter implements Filterable {
                        $checksFailed++;
                } // END - if
 
-               // If scrypt() is not found (ext-scrypt) then the "HubCoins reward" is not working
+               // If scrypt() is not found (ext-scrypt) then the "Hubcoins reward" is not working
                if ((extension_loaded('scrypt')) && (is_callable('scrypt'))) {
                        // Mark it as working
-                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt and a callable scrypt() function found. "HubCoin reward" feature enabled.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt and a callable scrypt() function found. "Hubcoin reward" feature enabled.');
                        $this->getConfigInstance()->setConfigEntry('extension_scrypt_loaded', TRUE);
                } else {
                        // Not working (not all have ext-scrypt installed
-                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt not found or scrypt() function not found. "HubCoin reward" feature disabled.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('FILTER[' . __METHOD__ . ':' . __LINE__ . '] ext-scrypt not found or scrypt() function not found. "Hubcoin reward" feature disabled.');
                }
 
                // Are all tests passed?
index 5904750ca462d16ef43ecad09c6d040fce5e6b4b..192c54fb195599b047316f13da3c5c3268edc956 100644 (file)
@@ -138,7 +138,7 @@ class PackageAssembler extends BaseHubSystem implements Assembler, Registerable,
                );
 
                // Construct call-back name from package error code
-               $this->callbacks[$packageContent[BaseRawDataHandler::PACKAGE_ERROR_CODE]] = 'handlePackageBy' . $this->convertToClassName($packageContent[BaseRawDataHandler::PACKAGE_ERROR_CODE]);
+               $this->callbacks[$packageContent[BaseRawDataHandler::PACKAGE_ERROR_CODE]] = 'handlePackageBy' . self::convertToClassName($packageContent[BaseRawDataHandler::PACKAGE_ERROR_CODE]);
 
                // Abort if the call-back method is not there
                if (!method_exists($this, $this->callbacks[$packageContent[BaseRawDataHandler::PACKAGE_ERROR_CODE]])) {
index 9b474be5ec9192d2881fc0735e78346b3e486da6..df534cd3ac01a7c8131d5537e538b26792dc0547 100644 (file)
@@ -657,10 +657,10 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
         */
        private function generatePackageHash ($content, $senderId) {
                // Debug message
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NETWORK-PACKAGE[' . __METHOD__ . ':' . __LINE__ . ']: extension_scrypt_loaded=' . intval($this->getConfigInstance()->getConfigEntry('extension_scrypt_loaded')) . ' - CALLED!');
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NETWORK-PACKAGE[' . __METHOD__ . ':' . __LINE__ . ']: isFeatureAvailable(hubcoin_reward)=' . intval(FrameworkFeature::isFeatureAvailable('hubcoin_reward')) . ' - CALLED!');
 
                // Is the feature enabled?
-               if ($this->getConfigInstance()->getConfigEntry('extension_scrypt_loaded') === FALSE) {
+               if (!FrameworkFeature::isFeatureAvailable('hubcoin_reward')) {
                        // Feature is not enabled
                        return NULL;
                } // END - if
@@ -674,7 +674,7 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
        
                // Hash content and sender id together, use scrypt
                /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NETWORK-PACKAGE[' . __METHOD__ . ':' . __LINE__ . ']: senderId=' . $senderId . ',content()=' . strlen($content));
-               $hash = Scrypt::hashScrypt($senderId . ':' . $content . ':' . $this->determineSenderPrivateKeyHash($data));
+               $hash = FrameworkFeature::callFeature('hubcoin_reward', 'generateHash', array($senderId . ':' . $content . ':' . $this->determineSenderPrivateKeyHash($data)));
 
                // Debug message
                /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NETWORK-PACKAGE[' . __METHOD__ . ':' . __LINE__ . ']: hash=' . $hash . ' - EXIT!');
@@ -693,7 +693,7 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
         */
        private function isPackageHashValid (array $decodedArray) {
                // Is the feature enabled?
-               if ($this->getConfigInstance()->getConfigEntry('extension_scrypt_loaded') === FALSE) {
+               if (!FrameworkFeature::isFeatureAvailable('hubcoin_reward')) {
                        // Feature is not enabled, so hashes are always valid
                        return TRUE;
                } // END - if
@@ -701,7 +701,7 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
                // Check validity
                /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NETWORK-PACKAGE[' . __METHOD__ . ':' . __LINE__ . ']: senderId=' . $decodedArray[self::PACKAGE_CONTENT_SENDER] . ',decodedArray=' . print_r($decodedArray, TRUE));
                //* DEBUG-DIE: */ die(__METHOD__ . ': decodedArray=' . print_r($decodedArray, TRUE));
-               $isHashValid = Scrypt::checkScrypt($decodedArray[self::PACKAGE_CONTENT_SENDER] . ':' . $decodedArray[self::PACKAGE_CONTENT_MESSAGE] . ':' . $this->determineSenderPrivateKeyHash($decodedArray), $decodedArray[self::PACKAGE_CONTENT_HASH]);
+               $isHashValid = FrameworkFeature::callFeature('hubcoin_reward', 'checkHash', array($decodedArray[self::PACKAGE_CONTENT_SENDER] . ':' . $decodedArray[self::PACKAGE_CONTENT_MESSAGE] . ':' . $this->determineSenderPrivateKeyHash($decodedArray), $decodedArray[self::PACKAGE_CONTENT_HASH]));
 
                // Return it
                //* DEBUG-DIE: */ die(__METHOD__ . ': isHashValid=' . intval($isHashValid) . ',decodedArray=' . print_r($decodedArray, TRUE));
@@ -1425,7 +1425,7 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
         * Feeds the hash and sender (as recipient for the 'sender' reward) to the
         * miner's queue, unless the message is not a "reward claim" message as this
         * leads to an endless loop. You may wish to run the miner to get some
-        * reward ("HubCoins") for "mining" this hash.
+        * reward ("Hubcoins") for "mining" this hash.
         *
         * @param       $messageData    Array with message data
         * @return      void
@@ -1433,7 +1433,7 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
         */
        public function feedHashToMiner (array $messageData) {
                // Is the feature enabled?
-               if ($this->getConfigInstance()->getConfigEntry('extension_scrypt_loaded') === FALSE) {
+               if (!FrameworkFeature::isFeatureAvailable('hubcoin_reward')) {
                        /*
                         * Feature is not enabled, don't feed the hash to the miner as it
                         *may be invalid.
index 62c7ca95e532f1b23e7fc10a4e06b6bc27bd0274..8744b71560d698236159d83a38fd53bdadfeb422 100644 (file)
@@ -96,7 +96,7 @@ class BaseStateResolver extends BaseResolver {
                $stateInstance = NULL;
 
                // Create state class name
-               $className = $this->getStatePrefix() . '' . $this->convertToClassName($stateName) . 'State';
+               $className = $this->getStatePrefix() . '' . self::convertToClassName($stateName) . 'State';
 
                // ... and set it
                $this->setClassName($className);
@@ -136,7 +136,7 @@ class BaseStateResolver extends BaseResolver {
                } // END - if
 
                // Create class name
-               $className = $this->statePrefix . $this->convertToClassName($stateName) . 'State';
+               $className = $this->statePrefix . self::convertToClassName($stateName) . 'State';
 
                // Now, let us create the full name of the state class
                $this->setClassName($className);
index db4e2cfa21efad1622f7cc24d39157418bb00795..6fca12e7c526343a41a45200314f22d69deaef5a 100644 (file)
@@ -245,7 +245,7 @@ class BaseXmlTemplateEngine extends BaseTemplateEngine {
                // Is the template dependency set?
                if ((!empty($templateDependency)) && (!isset($this->dependencyContent[$node]))) {
                        // Get a temporay template instance
-                       $templateInstance = XmlTemplateEngineFactory::createXmlTemplateEngineInstance($this->typePrefix . '_' . $this->convertDashesToUnderscores($node) . '_' . $this->xmlTemplateType . '_template_class');
+                       $templateInstance = XmlTemplateEngineFactory::createXmlTemplateEngineInstance($this->typePrefix . '_' . self::convertDashesToUnderscores($node) . '_' . $this->xmlTemplateType . '_template_class');
 
                        // Then load it
                        $templateInstance->loadXmlTemplate($templateDependency);
@@ -269,7 +269,7 @@ class BaseXmlTemplateEngine extends BaseTemplateEngine {
         */
        public final function startElement ($resource, $element, array $attributes) {
                // Initial method name which will never be called...
-               $methodName = 'init' . $this->convertToClassName($this->xmlTemplateType);
+               $methodName = 'init' . self::convertToClassName($this->xmlTemplateType);
 
                // Make the element name lower-case
                $element = strtolower($element);
@@ -278,13 +278,13 @@ class BaseXmlTemplateEngine extends BaseTemplateEngine {
                //* DEBUG: */ echo "START: &gt;".$element."&lt;<br />\n";
                if (in_array($element, $this->getMainNodes())) {
                        // Okay, main node found!
-                       $methodName = 'start' . $this->convertToClassName($element);
+                       $methodName = 'start' . self::convertToClassName($element);
 
                        // Set it
                        $this->setCurrMainNode($element);
                } elseif (in_array($element, $this->getSubNodes())) {
                        // Sub node found
-                       $methodName = 'start' . $this->convertToClassName($element);
+                       $methodName = 'start' . self::convertToClassName($element);
                } else {
                        // Invalid node name found
                        throw new InvalidXmlNodeException(array($this, $element, $attributes), XmlParser::EXCEPTION_XML_NODE_UNKNOWN);
@@ -314,7 +314,7 @@ class BaseXmlTemplateEngine extends BaseTemplateEngine {
                } // END - if
 
                // Construct method name
-               $methodName = 'finish' . $this->convertToClassName($nodeName);
+               $methodName = 'finish' . self::convertToClassName($nodeName);
 
                // Call the corresponding method
                //* DEBUG: */ echo "call: ".$methodName."<br />\n";
diff --git a/core b/core
index c397ac084fc4f194ddae9fd84ce7233197598704..1f81d21b97669832b84da3680d046eb9e4afba64 160000 (submodule)
--- a/core
+++ b/core
@@ -1 +1 @@
-Subproject commit c397ac084fc4f194ddae9fd84ce7233197598704
+Subproject commit 1f81d21b97669832b84da3680d046eb9e4afba64