From 7998222c91b50ad818a41aed03a60358e1471a96 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Mon, 18 Apr 2011 19:35:05 +0000 Subject: [PATCH] Package data 'recipient', 'sender' and 'content' are now replaceable --- .../package/class_PackageRecipientDiscovery.php | 4 ++-- .../network/class_BaseNetworkPackageHandler.php | 1 + .../connection/tcp/class_TcpConnectionHelper.php | 2 +- .../hub/main/package/class_NetworkPackage.php | 15 +++++++++++---- .../fragmenter/class_PackageFragmenter.php | 6 +++--- .../main/registry/socket/class_SocketRegistry.php | 2 +- .../hub/main/tags/package/class_PackageTags.php | 2 +- 7 files changed, 20 insertions(+), 12 deletions(-) diff --git a/application/hub/main/discovery/package/class_PackageRecipientDiscovery.php b/application/hub/main/discovery/package/class_PackageRecipientDiscovery.php index 85033220f..b4e5f2180 100644 --- a/application/hub/main/discovery/package/class_PackageRecipientDiscovery.php +++ b/application/hub/main/discovery/package/class_PackageRecipientDiscovery.php @@ -59,7 +59,7 @@ class PackageRecipientDiscovery extends BaseHubDiscovery implements Discoverable $listInstance = RecipientListFactory::createRecipientListInstance(); // We do some rudimentary checks but this might be a bit ugly - switch ($packageData['recipient']) { + switch ($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT]) { // All upper hubs, these are currently the bootstrap nodes and later on prepended list-nodes case NetworkPackage::NETWORK_TARGET_UPPER_HUBS: // Get all bootstrap nodes @@ -99,7 +99,7 @@ class PackageRecipientDiscovery extends BaseHubDiscovery implements Discoverable // This may be a direct recipient (hub's session id) default: - $this->partialStub('Please add code handling recipients ' . $packageData['recipient']); + $this->partialStub('Please add code handling recipients ' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT]); break; } // END - switch } diff --git a/application/hub/main/handler/network/class_BaseNetworkPackageHandler.php b/application/hub/main/handler/network/class_BaseNetworkPackageHandler.php index 5599cbd38..3e6399645 100644 --- a/application/hub/main/handler/network/class_BaseNetworkPackageHandler.php +++ b/application/hub/main/handler/network/class_BaseNetworkPackageHandler.php @@ -72,6 +72,7 @@ class BaseNetworkPackageHandler extends BaseHandler { $ownAddress = Registry::getRegistry()->getInstance('node')->getAddressPort($this); // Does it match? + // @TODO Numeric or alpha-numeric index? $matches = ($ownAddress === $packageData[NetworkPackage::INDEX_PACKAGE_RECIPIENT]); // Return result diff --git a/application/hub/main/helper/connection/tcp/class_TcpConnectionHelper.php b/application/hub/main/helper/connection/tcp/class_TcpConnectionHelper.php index 947daad35..02e9707fd 100644 --- a/application/hub/main/helper/connection/tcp/class_TcpConnectionHelper.php +++ b/application/hub/main/helper/connection/tcp/class_TcpConnectionHelper.php @@ -84,7 +84,7 @@ class TcpConnectionHelper extends BaseConnectionHelper implements ConnectionHelp $helperInstance->setSocketResource($socketResource); // Resolve any session ids; 0 = IP, 1 = Port - $recipientData = explode(':', HubTools::resolveSessionId($packageData['recipient'])); + $recipientData = explode(':', HubTools::resolveSessionId($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT])); // Set ip/port $helperInstance->setAddress($recipientData[0]); diff --git a/application/hub/main/package/class_NetworkPackage.php b/application/hub/main/package/class_NetworkPackage.php index 192403e65..1f9b5d3ba 100644 --- a/application/hub/main/package/class_NetworkPackage.php +++ b/application/hub/main/package/class_NetworkPackage.php @@ -71,6 +71,13 @@ class NetworkPackage extends BaseFrameworkSystem implements Deliverable, Receiva const INDEX_PACKAGE_RECIPIENT = 1; const INDEX_PACKAGE_CONTENT = 2; + /** + * Named array elements for package data + */ + const PACKAGE_DATA_RECIPIENT = 'recipient'; + const PACKAGE_DATA_SENDER = 'sender'; + const PACKAGE_DATA_CONTENT = 'content'; + /** * Tags seperator */ @@ -208,7 +215,7 @@ class NetworkPackage extends BaseFrameworkSystem implements Deliverable, Receiva $this->debugOutput('PACKAGE: Package declared for recipient ' . $currentRecipient); // Set the recipient - $packageData['recipient'] = $currentRecipient; + $packageData[self::PACKAGE_DATA_RECIPIENT] = $currentRecipient; // And enqueue it to the writer class $this->getStackerInstance()->pushNamed(self::STACKER_NAME_DECLARED, $packageData); @@ -317,9 +324,9 @@ class NetworkPackage extends BaseFrameworkSystem implements Deliverable, Receiva // Now prepare the temporary array and push it on the 'undeclared' stack $this->getStackerInstance()->pushNamed(self::STACKER_NAME_UNDECLARED, array( - 'sender' => $nodeInstance->getSessionId(), - 'recipient' => $helperInstance->getRecipientType(), - 'content' => $content, + self::PACKAGE_DATA_SENDER => $nodeInstance->getSessionId(), + self::PACKAGE_DATA_RECIPIENT => $helperInstance->getRecipientType(), + self::PACKAGE_DATA_CONTENT => $content, )); } diff --git a/application/hub/main/package/fragmenter/class_PackageFragmenter.php b/application/hub/main/package/fragmenter/class_PackageFragmenter.php index ca073ae07..2fb1f3b65 100644 --- a/application/hub/main/package/fragmenter/class_PackageFragmenter.php +++ b/application/hub/main/package/fragmenter/class_PackageFragmenter.php @@ -158,9 +158,9 @@ class PackageFragmenter extends BaseFrameworkSystem implements Fragmentable, Reg */ private function getProcessedPackagesIndex (array $packageData) { return ( - $packageData['sender'] . NetworkPackage::PACKAGE_DATA_SEPERATOR . - $packageData['recipient'] . NetworkPackage::PACKAGE_DATA_SEPERATOR . - $packageData['content'] . NetworkPackage::PACKAGE_DATA_SEPERATOR + $packageData[NetworkPackage::PACKAGE_DATA_SENDER] . NetworkPackage::PACKAGE_DATA_SEPERATOR . + $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT] . NetworkPackage::PACKAGE_DATA_SEPERATOR . + $packageData[NetworkPackage::PACKAGE_DATA_CONTENT] . NetworkPackage::PACKAGE_DATA_SEPERATOR ); } diff --git a/application/hub/main/registry/socket/class_SocketRegistry.php b/application/hub/main/registry/socket/class_SocketRegistry.php index a51f80e26..809473673 100644 --- a/application/hub/main/registry/socket/class_SocketRegistry.php +++ b/application/hub/main/registry/socket/class_SocketRegistry.php @@ -220,7 +220,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke // This is always a SubRegistry instance foreach ($registryInstance->getInstanceRegistry() as $subKey=>$containerInstance) { // This is a SocketContainer instance, so does the recipient match? - if ($containerInstance->ifAddressMatches($packageData['recipient'])) { + if ($containerInstance->ifAddressMatches($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT])) { // Found one, so get the protocol instance and abort $protocolInstance = $containerInstance->getProtocolInstance(); break; diff --git a/application/hub/main/tags/package/class_PackageTags.php b/application/hub/main/tags/package/class_PackageTags.php index a21511b28..79ced8284 100644 --- a/application/hub/main/tags/package/class_PackageTags.php +++ b/application/hub/main/tags/package/class_PackageTags.php @@ -100,7 +100,7 @@ class PackageTags extends BaseTags implements Tagable { * We take a look at the tags (in most cases only one is needed) so * first we need the content data splitted up into all it's parts. */ - $contentData = explode(NetworkPackage::PACKAGE_MASK_SEPERATOR, $packageData['content']); + $contentData = explode(NetworkPackage::PACKAGE_MASK_SEPERATOR, $packageData[NetworkPackage::PACKAGE_DATA_CONTENT]); // Get the tags and store them locally $this->setTags(explode(NetworkPackage::PACKAGE_TAGS_SEPERATOR, $contentData[NetworkPackage::INDEX_TAGS])); -- 2.39.2