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

  1. package mx.messaging
  2. {
  3.    import flash.events.TimerEvent;
  4.    import flash.net.Responder;
  5.    import flash.utils.Timer;
  6.    import mx.messaging.messages.ErrorMessage;
  7.    import mx.messaging.messages.IMessage;
  8.    import mx.resources.IResourceManager;
  9.    import mx.resources.ResourceManager;
  10.    
  11.    public class MessageResponder extends Responder
  12.    {
  13.       private var _channel:Channel;
  14.       
  15.       private var _agent:MessageAgent;
  16.       
  17.       private var _requestTimedOut:Boolean;
  18.       
  19.       private var _message:IMessage;
  20.       
  21.       private var _requestTimer:Timer;
  22.       
  23.       private var resourceManager:IResourceManager = ResourceManager.getInstance();
  24.       
  25.       public function MessageResponder(param1:MessageAgent, param2:IMessage, param3:Channel = null)
  26.       {
  27.          super(result,status);
  28.          _agent = param1;
  29.          _channel = param3;
  30.          _message = param2;
  31.          _requestTimedOut = false;
  32.       }
  33.       
  34.       public function get channel() : Channel
  35.       {
  36.          return _channel;
  37.       }
  38.       
  39.       public function get agent() : MessageAgent
  40.       {
  41.          return _agent;
  42.       }
  43.       
  44.       protected function requestTimedOut() : void
  45.       {
  46.       }
  47.       
  48.       final public function startRequestTimeout(param1:int) : void
  49.       {
  50.          _requestTimer = new Timer(param1 * 1000,1);
  51.          _requestTimer.addEventListener(TimerEvent.TIMER,timeoutRequest);
  52.          _requestTimer.start();
  53.       }
  54.       
  55.       public function get message() : IMessage
  56.       {
  57.          return _message;
  58.       }
  59.       
  60.       final public function result(param1:IMessage) : void
  61.       {
  62.          if(!_requestTimedOut)
  63.          {
  64.             if(_requestTimer != null)
  65.             {
  66.                releaseTimer();
  67.             }
  68.             resultHandler(param1);
  69.          }
  70.       }
  71.       
  72.       private function releaseTimer() : void
  73.       {
  74.          _requestTimer.stop();
  75.          _requestTimer.removeEventListener(TimerEvent.TIMER,timeoutRequest);
  76.          _requestTimer = null;
  77.       }
  78.       
  79.       public function set message(param1:IMessage) : void
  80.       {
  81.          _message = param1;
  82.       }
  83.       
  84.       protected function createRequestTimeoutErrorMessage() : ErrorMessage
  85.       {
  86.          var _loc1_:ErrorMessage = new ErrorMessage();
  87.          _loc1_.correlationId = message.messageId;
  88.          _loc1_.faultCode = "Client.Error.RequestTimeout";
  89.          _loc1_.faultString = resourceManager.getString("messaging","requestTimedOut");
  90.          _loc1_.faultDetail = resourceManager.getString("messaging","requestTimedOut.details");
  91.          return _loc1_;
  92.       }
  93.       
  94.       private function timeoutRequest(param1:TimerEvent) : void
  95.       {
  96.          _requestTimedOut = true;
  97.          releaseTimer();
  98.          requestTimedOut();
  99.       }
  100.       
  101.       final public function status(param1:IMessage) : void
  102.       {
  103.          if(!_requestTimedOut)
  104.          {
  105.             if(_requestTimer != null)
  106.             {
  107.                releaseTimer();
  108.             }
  109.             statusHandler(param1);
  110.          }
  111.       }
  112.       
  113.       protected function resultHandler(param1:IMessage) : void
  114.       {
  115.       }
  116.       
  117.       protected function statusHandler(param1:IMessage) : void
  118.       {
  119.       }
  120.    }
  121. }
  122.  
  123.