/**
* 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);
}
}