]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/database/wrapper/node/class_NodeDistributedHashTableDatabaseWrapper.php
Made usage of unsetCriteria() to remove unwanted 'node_list' in DHT as this is double...
[hub.git] / application / hub / main / database / wrapper / node / class_NodeDistributedHashTableDatabaseWrapper.php
index dc494d5bc59fe78c3d84ffbe2417dbd50987f508..55f182f7f50683a7fb901dbf42e854e25f544e89 100644 (file)
@@ -32,7 +32,8 @@ class NodeDistributedHashTableDatabaseWrapper extends BaseDatabaseWrapper implem
        const DB_COLUMN_LISTEN_PORT      = 'listen_port';
        const DB_COLUMN_PRIVATE_KEY      = 'private_key';
        const DB_COLUMN_PRIVATE_KEY_HASH = 'private_key_hash';
-       const DB_COLUMN_NODE_TYPE        = 'node_type';
+       const DB_COLUMN_NODE_MODE        = 'node_mode';
+       const DB_COLUMN_ACCEPTED_OBJECTS = 'accepted_object_types';
 
        /**
         * Protected constructor
@@ -84,13 +85,17 @@ class NodeDistributedHashTableDatabaseWrapper extends BaseDatabaseWrapper implem
                // Make sure both is valid
                assert(($ipPort[0] !== 'invalid') && ($ipPort[1] !== 'invalid'));
 
+               // Get an array of all accepted object types
+               $objectList = $nodeInstance->getListFromAcceptedObjectTypes();
+
                // Add public node data
-               $dataSetInstance->addCriteria(self::DB_COLUMN_NODE_TYPE       , $requestInstance->getRequestElement('mode'));
+               $dataSetInstance->addCriteria(self::DB_COLUMN_NODE_MODE       , $requestInstance->getRequestElement('mode'));
                $dataSetInstance->addCriteria(self::DB_COLUMN_EXTERNAL_IP     , $ipPort[0]);
                $dataSetInstance->addCriteria(self::DB_COLUMN_LISTEN_PORT     , $ipPort[1]);
                $dataSetInstance->addCriteria(self::DB_COLUMN_NODE_ID         , $nodeInstance->getNodeId());
                $dataSetInstance->addCriteria(self::DB_COLUMN_SESSION_ID      , $nodeInstance->getSessionId());
                $dataSetInstance->addCriteria(self::DB_COLUMN_PRIVATE_KEY_HASH, $nodeInstance->getPrivateKeyHash());
+               $dataSetInstance->addCriteria(self::DB_COLUMN_ACCEPTED_OBJECTS, implode(BaseHubNode::OBJECT_LIST_SEPARATOR, $objectList));
 
                // Return it
                return $dataSetInstance;
@@ -218,6 +223,9 @@ class NodeDistributedHashTableDatabaseWrapper extends BaseDatabaseWrapper implem
                // Add all array elements
                $handlerInstance->addArrayToDataSet($dataSetInstance, $messageData);
 
+               // Remove 'node_list'
+               $dataSetInstance->unsetCriteria('node_list');
+
                // Run the "INSERT" query
                $this->queryInsertDataSet($dataSetInstance);
        }
@@ -243,6 +251,9 @@ class NodeDistributedHashTableDatabaseWrapper extends BaseDatabaseWrapper implem
                // Add all array elements
                $handlerInstance->addArrayToDataSet($dataSetInstance, $messageData);
 
+               // Remove 'node_list'
+               $dataSetInstance->unsetCriteria('node_list');
+
                // Run the "UPDATE" query
                $this->queryUpdateDataSet($dataSetInstance);
        }