home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / messaging / Producer.as < prev   
Encoding:
Text File  |  2010-06-23  |  2.2 KB  |  79 lines

  1. package mx.messaging
  2. {
  3.    import mx.core.mx_internal;
  4.    import mx.events.PropertyChangeEvent;
  5.    import mx.logging.Log;
  6.    import mx.messaging.messages.AbstractMessage;
  7.    import mx.messaging.messages.AsyncMessage;
  8.    import mx.messaging.messages.IMessage;
  9.    
  10.    use namespace mx_internal;
  11.    
  12.    public class Producer extends AbstractProducer
  13.    {
  14.       public static const DEFAULT_PRIORITY:int = 4;
  15.       
  16.       private var _subtopic:String = "";
  17.       
  18.       public function Producer()
  19.       {
  20.          super();
  21.          _log = Log.getLogger("mx.messaging.Producer");
  22.          _agentType = "producer";
  23.       }
  24.       
  25.       override protected function internalSend(param1:IMessage, param2:Boolean = true) : void
  26.       {
  27.          if(subtopic.length > 0)
  28.          {
  29.             param1.headers[AsyncMessage.SUBTOPIC_HEADER] = subtopic;
  30.          }
  31.          handlePriority(param1);
  32.          super.internalSend(param1,param2);
  33.       }
  34.       
  35.       private function handlePriority(param1:IMessage) : void
  36.       {
  37.          var _loc2_:int = 0;
  38.          if(param1.headers[AbstractMessage.PRIORITY_HEADER] != null)
  39.          {
  40.             _loc2_ = int(param1.headers[AbstractMessage.PRIORITY_HEADER]);
  41.             if(_loc2_ < 0)
  42.             {
  43.                param1.headers[AbstractMessage.PRIORITY_HEADER] = 0;
  44.             }
  45.             else if(_loc2_ > 9)
  46.             {
  47.                param1.headers[AbstractMessage.PRIORITY_HEADER] = 9;
  48.             }
  49.          }
  50.          else if(priority > -1)
  51.          {
  52.             param1.headers[AbstractMessage.PRIORITY_HEADER] = priority;
  53.          }
  54.       }
  55.       
  56.       public function set subtopic(param1:String) : void
  57.       {
  58.          var _loc2_:PropertyChangeEvent = null;
  59.          if(_subtopic != param1)
  60.          {
  61.             if(param1 == null)
  62.             {
  63.                param1 = "";
  64.             }
  65.             _loc2_ = PropertyChangeEvent.createUpdateEvent(this,"subtopic",_subtopic,param1);
  66.             _subtopic = param1;
  67.             dispatchEvent(_loc2_);
  68.          }
  69.       }
  70.       
  71.       [Bindable(event="propertyChange")]
  72.       public function get subtopic() : String
  73.       {
  74.          return _subtopic;
  75.       }
  76.    }
  77. }
  78.  
  79.