summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc
diff options
context:
space:
mode:
authorxue <>2006-06-19 18:38:29 +0000
committerxue <>2006-06-19 18:38:29 +0000
commit588727c7e2b8954ec3dbde293cf4c4d68b119f9b (patch)
treefdcc16181a20335547953ccf1550e0006c11bf28 /buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc
parent127f78a4db3cc0fbbbb92f5b1abcfdce4a9af93b (diff)
Merge from 3.0 branch till 1185.
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc')
-rw-r--r--buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc84
1 files changed, 84 insertions, 0 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc b/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc
new file mode 100644
index 00000000..7e038021
--- /dev/null
+++ b/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc
@@ -0,0 +1,84 @@
+<?php
+//
+// +------------------------------------------------------------------------+
+// | phpDocumentor |
+// +------------------------------------------------------------------------+
+// | Publisher Copyright 2000-2003 Kellin |
+// | Email passionplay@hotmail.com |
+// | phpDocumentor Copyright (c) 2000-2003 Joshua Eichorn, Gregory Beaver |
+// | Email jeichorn@phpdoc.org, cellog@phpdoc.org |
+// | Web http://www.phpdoc.org |
+// | Mirror http://phpdocu.sourceforge.net/ |
+// | PEAR http://pear.php.net/package-info.php?pacid=137 |
+// +------------------------------------------------------------------------+
+// | This source file is subject to version 3.00 of the PHP License, |
+// | that is available at http://www.php.net/license/3_0.txt. |
+// | If you did not receive a copy of the PHP license and are unable to |
+// | obtain it through the world-wide-web, please send a note to |
+// | license@php.net so we can mail you a copy immediately. |
+// +------------------------------------------------------------------------+
+//
+
+/**
+ * a class for handling the publishing of data
+ *
+ * @author Kellin <passionplay@hotmail.com>
+ * @author Joshua Eichorn <jeichorn@phpdoc.org>
+ * @version $Id: Publisher.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
+ * @package phpDocumentor
+ */
+/**
+ * a class for handling the publishing of data
+ *
+ * @author Kellin <passionplay@hotmail.com>
+ * @author Joshua Eichorn <jeichorn@phpdoc.org>
+ * @version $Id: Publisher.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
+ * @package phpDocumentor
+ */
+class Publisher
+{
+ /**#@+
+ * @var array
+ */
+ /**
+ * Array of references objects that have Subscribed to this publisher
+ */
+ var $subscriber = array();
+
+ var $tokens = array();
+
+ var $pushEvent = array();
+ var $popEvent = array();
+ /**#@-*/
+
+
+ /**
+ * Adds a subscriber to the {@link $subscriber} array().
+ * if $event is '*', the publisher will use $object as the default event handler
+ * @param integer $event see {@link Parser.inc} PARSER_EVENT_* constants
+ * @param class $object any class that has a HandleEvent() method like {@link phpDocumentor_IntermediateParser::HandleEvent()} or {@link Classes::HandleEvent()}
+ */
+ function subscribe($event, &$object)
+ {
+ $this->subscriber[$event] =& $object;
+ }
+
+ /**
+ * @param integer $event see {@link Parser.inc} PARSER_EVENT_* constants
+ * @param mixed $data anything the subscribed event handler is expecting
+ */
+ function publishEvent($event,$data)
+ {
+
+ // see if there is a specific event handler
+ if (!empty($this->subscriber[$event]))
+ {
+ $this->subscriber[$event]->HandleEvent($event,$data);
+ }
+ else if (isset($this->subscriber['*']) && is_object($this->subscriber['*'])) // check to see if a generic handler exists
+ {
+ $this->subscriber['*']->HandleEvent($event,$data);
+ }
+ }
+}
+?>