Advertisement
jesterxl

Ping Service

Jan 10th, 2013
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.hbo.diagnostics.services
  2. {
  3.     import com.hbo.diagnostics.events.ServiceEvent;
  4.    
  5.     import flash.events.ErrorEvent;
  6.     import flash.events.Event;
  7.     import flash.events.EventDispatcher;
  8.     import flash.events.HTTPStatusEvent;
  9.     import flash.events.IEventDispatcher;
  10.     import flash.events.IOErrorEvent;
  11.     import flash.events.SecurityErrorEvent;
  12.     import flash.net.URLLoader;
  13.     import flash.net.URLRequest;
  14.    
  15.     [Event(name="pingSuccess", type="com.hbo.diagnostics.events.ServiceEvent")]
  16.     [Event(name="pingError", type="com.hbo.diagnostics.events.ServiceEvent")]
  17.     public class PingService extends EventDispatcher
  18.     {
  19.         private var loader:URLLoader;
  20.         public var url:String;
  21.         private var _loading:Boolean = false;
  22.        
  23.         public function get loading():Boolean { return _loading; }
  24.        
  25.         public function PingService()
  26.         {
  27.             super();
  28.         }
  29.        
  30.         public function ping(url:String=null):void
  31.         {
  32.             if(_loading == true)
  33.                 return;
  34.            
  35.             if(url != null && url != "")
  36.                 this.url = url;
  37.            
  38.             if(loader == null)
  39.             {
  40.                 loader = new URLLoader();
  41.                 loader.addEventListener(Event.COMPLETE, onComplete);
  42.                 loader.addEventListener(HTTPStatusEvent.HTTP_RESPONSE_STATUS, onResponseStatus);
  43.                 loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onResponseStatus);
  44.                 loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
  45.                 loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
  46.             }
  47.            
  48.             try
  49.             {
  50.                 loader.close();
  51.             }
  52.             catch(error:Error)
  53.             {
  54.             }
  55.            
  56.             try
  57.             {
  58.                 _loading = true;
  59.                 loader.load(new URLRequest(this.url));
  60.             }
  61.             catch(error:Error)
  62.             {
  63.                 //trace("PingService::ping, error: " + error);
  64.                 _loading = false;
  65.                 dispatchEvent(new ServiceEvent(ServiceEvent.PING_ERROR));
  66.             }
  67.         }
  68.        
  69.         private function onComplete(event:Event):void
  70.         {
  71.             //trace("PingService::onComplete");
  72.             _loading = false;
  73.             dispatchEvent(new ServiceEvent(ServiceEvent.PING_SUCCESS));
  74.         }
  75.        
  76.         private function onError(event:ErrorEvent):void
  77.         {
  78.             //trace("PingService::onError");
  79.             //trace(event.text);
  80.             _loading = false;
  81.             dispatchEvent(new ServiceEvent(ServiceEvent.PING_ERROR));
  82.         }
  83.        
  84.         private function onResponseStatus(event:HTTPStatusEvent):void
  85.         {
  86.             //trace("PingService::onResponseStatus");
  87.             //trace(event.status);
  88.         }
  89.        
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement