1  /**
     2   * com.sekati.events.LcBroadcaster
     3   * @version 1.0.0
     4   * @author jason m horwitz | sekati.com | tendercreative.com
     5   * Copyright (C) 2007  jason m horwitz, Sekat LLC. All Rights Reserved.
     6   * Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
     7   */
     8   
     9  import com.sekati.core.CoreObject;
    10  
    11  /**
    12   * Singleton LocalConnection Broadcaster
    13   * 
    14   * {@code Usage:
    15   * var lb:LcBroadcaster = LcBroadcaster.getInstance ();
    16   * lc.subscribe (fooMc);
    17   * lb.broadcast ("onChangeAlpha", 50);
    18   * }
    19   */
    20  class com.sekati.events.LcBroadcaster extends CoreObject {
    21  
    22  	private static var _instance:LcBroadcaster;
    23  	private var _tx:LocalConnection;
    24  	private var _rx:LocalConnection;
    25  	public var connectionName:String = "_com.sekati.events.LcBroadcaster";
    26  	public var methodName:String = "lcHandler";
    27  
    28  	/**
    29  	 * Singleton Private Constructor
    30  	 */
    31  	private function LcBroadcaster() {
    32  		super( );
    33  		_tx = new LocalConnection();
    34  		_rx = new LocalConnection();
    35  		_rx.allowDomain = _rx.allowInsecureDomain = domain;
    36  		_rx[methodName] = handler;
    37  		_rx.connect( LCBinding.connectionName );		
    38  	}
    39  
    40  	/**
    41  	 * Singleton Accessor
    42  	 * @return LcBroadcaster
    43  	 */
    44  	public static function getInstance():LcBroadcaster {
    45  		if (!_instance) _instance = new LcBroadcaster( );
    46  		return _instance;
    47  	}
    48  
    49  	/**
    50  	 * shorthand singleton accessor getter
    51  	 * @return LcBroadcaster
    52  	 */
    53  	public static function get $():LcBroadcaster {
    54  		return LcBroadcaster.getInstance( );	
    55  	}
    56  	
    57  	
    58  	/**
    59  	 * Open LocalConnection to all domains.
    60  	 * @return Boolean
    61  	 */
    62  	public static function domain():Boolean {
    63  		return true;
    64  	}	
    65  }
    66