home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Darbas / kidoz_v1.air / kidoz.swf / scripts / air / net / URLMonitor.as < prev   
Encoding:
Text File  |  2009-05-06  |  4.0 KB  |  122 lines

  1. package air.net
  2. {
  3.    import flash.errors.IOError;
  4.    import flash.events.Event;
  5.    import flash.events.HTTPStatusEvent;
  6.    import flash.events.IOErrorEvent;
  7.    import flash.events.SecurityErrorEvent;
  8.    import flash.net.URLRequest;
  9.    import flash.net.URLStream;
  10.    
  11.    public class URLMonitor extends ServiceMonitor
  12.    {
  13.       private static const kNullPointerError:uint = 2007;
  14.       
  15.       private static const _initStatusCodes:Array = [200,202,204,205,206];
  16.       
  17.       private var _acceptableStatusCodesOriginal:Array;
  18.       
  19.       private var _urlRequestOriginal:URLRequest;
  20.       
  21.       private var _urlStream:URLStream;
  22.       
  23.       private var _acceptableStatusCodes:Array;
  24.       
  25.       private var _urlRequest:URLRequest;
  26.       
  27.       public function URLMonitor(param1:URLRequest, param2:Array = null)
  28.       {
  29.          var cool:Function = null;
  30.          var uncool:Function = null;
  31.          var urlRequest:URLRequest = param1;
  32.          var acceptableStatusCodes:Array = param2;
  33.          _acceptableStatusCodesOriginal = _initStatusCodes.concat();
  34.          _acceptableStatusCodes = _acceptableStatusCodesOriginal.concat();
  35.          _urlStream = new URLStream();
  36.          cool = function(param1:HTTPStatusEvent):void
  37.          {
  38.             var event:HTTPStatusEvent = param1;
  39.             available = _acceptableStatusCodes.indexOf(Number(event.status)) >= 0;
  40.             try
  41.             {
  42.                _urlStream.close();
  43.             }
  44.             catch(e:IOError)
  45.             {
  46.             }
  47.          };
  48.          uncool = function(param1:Event):void
  49.          {
  50.             var event:Event = param1;
  51.             available = false;
  52.             try
  53.             {
  54.                _urlStream.close();
  55.             }
  56.             catch(e:IOError)
  57.             {
  58.             }
  59.          };
  60.          super();
  61.          if(!urlRequest)
  62.          {
  63.             Error.throwError(ArgumentError,kNullPointerError);
  64.          }
  65.          _urlRequestOriginal = urlRequest;
  66.          _urlRequest = new URLRequest(urlRequest.url);
  67.          _urlRequest.method = urlRequest.method;
  68.          _urlRequest.contentType = urlRequest.contentType;
  69.          _urlRequest.data = urlRequest.data;
  70.          _urlRequest.followRedirects = urlRequest.followRedirects;
  71.          _urlRequest.authenticate = urlRequest.authenticate;
  72.          _urlRequest.cacheResponse = urlRequest.cacheResponse;
  73.          _urlRequest.manageCookies = urlRequest.manageCookies;
  74.          _urlRequest.requestHeaders = urlRequest.requestHeaders.concat();
  75.          _urlRequest.userAgent = urlRequest.userAgent;
  76.          _urlRequest.useCache = false;
  77.          if(acceptableStatusCodes)
  78.          {
  79.             this.acceptableStatusCodes = acceptableStatusCodes;
  80.          }
  81.          _urlStream.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS,cool);
  82.          _urlStream.addEventListener(SecurityErrorEvent.SECURITY_ERROR,uncool);
  83.          _urlStream.addEventListener(IOErrorEvent.IO_ERROR,uncool);
  84.       }
  85.       
  86.       public function get urlRequest() : URLRequest
  87.       {
  88.          return _urlRequestOriginal;
  89.       }
  90.       
  91.       override protected function checkStatus() : void
  92.       {
  93.          _urlStream.load(_urlRequest);
  94.       }
  95.       
  96.       public function set acceptableStatusCodes(param1:Array) : void
  97.       {
  98.          if(param1 == null)
  99.          {
  100.             Error.throwError(ArgumentError,kNullPointerError);
  101.          }
  102.          _acceptableStatusCodesOriginal = param1;
  103.          _acceptableStatusCodes = param1.concat();
  104.       }
  105.       
  106.       override public function toString() : String
  107.       {
  108.          if(!_urlRequest)
  109.          {
  110.             return "[URLMonitor available=\"" + available + "\"]";
  111.          }
  112.          return "[URLMonitor method=\"" + _urlRequest.method + "\" url=\"" + _urlRequest.url + "\" available=\"" + available + "\"]";
  113.       }
  114.       
  115.       public function get acceptableStatusCodes() : Array
  116.       {
  117.          return _acceptableStatusCodesOriginal;
  118.       }
  119.    }
  120. }
  121.  
  122.