]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/recipient/dht/class_DhtRecipient.php
Added missing classes.
[hub.git] / application / hub / main / recipient / dht / class_DhtRecipient.php
index ffdaeba8cb5e9e384dad856278aa3d492ad17902..2e32f8158f1ad9ac1b772f8a222439b1ab139061 100644 (file)
@@ -47,18 +47,28 @@ class DhtRecipient extends BaseRecipient implements Recipient {
 
        /**
         * Tries to resolve given recipient into session ids or ip:port combination
-        * depending on implementation (hint: Template Method Pattern)
+        * depending on implementation (hint: Template Method Pattern). This
+        * implementation will add more than one recipient to the list as a DHT is
+        * distributed and the package might go to more than one recipient.
         *
         * @param       $recipient              Recipient to resolve (e.g. could be a virtual recipient or direct session id)
         * @param       $listInstance   An instance of a Listable class
-        * @return      $resolved               Resolved recipient or VOID if only the set list has been filled
+        * @param       $packageData    Valid package data array
+        * @return      void
         * @throws      FrameworkException      Could throw different exceptions depending on implementation
         * @todo        0% done
         */
-       public function resolveRecipient ($recipient, Listable $listInstance) {
+       public function resolveRecipient ($recipient, Listable $listInstance, array $packageData) {
                // Make sure the recipient is valid
                //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('DHT-RECIPIENT: recipient=' . $recipient);
                assert($recipient == NetworkPackage::NETWORK_TARGET_DHT);
+
+               // Get recipient discovery instance
+               $discoverInstance = ObjectFactory::createObjectByConfiguredName('dht_recipient_discovery_class');
+
+               // "Discover" recipients by given package data
+               $recipients = $discoverInstance->resolveRecipientsByPackageData($packageData);
+
                $this->partialStub('Please implement this method. recipient=' . $recipient);
        }
 }