New onsite patient portal, take 4.
[openemr.git] / portal / patient / fwk / libs / verysimple / Phreeze / Observable.php
blob4beec73796441ceadf9de0daaec8938d64ba76cf
1 <?php
2 /** @package verysimple::Phreeze */
4 /**
5 * import supporting libraries
6 */
7 require_once ("IObservable.php");
9 /**
10 * Observable is an abstract implementation of IObservable
12 * @package verysimple::Phreeze
13 * @author VerySimple Inc.
14 * @copyright 1997-2005 VerySimple, Inc.
15 * @license http://www.gnu.org/licenses/lgpl.html LGPL
16 * @version 2.0
18 abstract class Observable implements IObservable {
19 private $_observers = Array ();
21 /**
22 * Registers an observer with this object
24 * @param IObserver $observer
26 public function AttachObserver($observer) {
27 if ($observer) {
28 $this->_observers [] = & $observer;
32 /**
33 * Fires and observable event.
34 * All registered observers will be notified
36 * @param variant $obj
37 * a string, numeric or object that contains the observable message
38 * @param int $ltype
39 * specified the "level" as defined in IObservable
41 public function Observe($obj, $ltype = OBSERVE_INFO) {
42 foreach ( $this->_observers as $observer ) {
43 $observer->Observe ( $obj, $ltype );