*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
- * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Hub Developer Team
+ * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Hub Developer Team
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
*/
interface Deliverable extends FrameworkInterface {
/**
- * "Queues" raw content into this delivery class by reading the raw content
- * from given template instance.
+ * "Enqueues" raw content into this delivery class by reading the raw content
+ * from given template instance and pushing it on the 'undeclared' stack.
*
- * @param $templateInstance A CompileableTemplate instance
+ * @param $helperInstance An instance of a BaseHubHelper class
+ * @param $nodeInstance An instance of a NodeHelper class
* @return void
*/
- function queueRawDataFromTemplate (CompileableTemplate $templateInstance);
+ function enqueueRawDataFromTemplate (BaseHubHelper $helperInstance, NodeHelper $nodeInstance);
+
+ /**
+ * Checks wether a package has been enqueued for delivery.
+ *
+ * @return $isEnqueued Wether a package is enqueued
+ */
+ function isPackageEnqueued ();
+
+ /**
+ * Checks wether a package has been declared
+ *
+ * @return $isDeclared Wether a package is declared
+ */
+ function isPackageDeclared ();
+
+ /**
+ * Checks wether a package should be sent out
+ *
+ * @return $isWaitingDelivery Wether a package is waiting for delivery
+ */
+ function isPackageWaitingForDelivery ();
+
+ /**
+ * Delivers an enqueued package to the stated destination. If a non-session
+ * id is provided, recipient resolver is being asked (and instanced once).
+ * This allows that a single package is being delivered to multiple targets
+ * without enqueueing it for every target. If no target is provided or it
+ * can't be determined a NoTargetException is being thrown.
+ *
+ * @return void
+ * @throws NoTargetException If no target can't be determined
+ */
+ function declareEnqueuedPackage ();
+
+ /**
+ * Delivers the next declared package. Only one package per time will be sent
+ * because this may take time and slows down the whole delivery
+ * infrastructure.
+ *
+ * @return void
+ */
+ function deliverDeclaredPackage ();
+
+ /**
+ * Sends waiting packages out for delivery
+ *
+ * @return void
+ */
+ function sendWaitingPackage ();
}
// [EOF]
?>
-