window.runtime propertywindow.runtime.air.net.ServiceMonitor
InheritanceServiceMonitor Inheritance EventDispatcher Inheritance Object
Subclasses SocketMonitor, URLMonitor

Base class for service monitors.

Implements the framework for montoring network services.

To use this class in JavaScript code, load the ServiceMonitor.swf file, as in the following:

<script src="ServiceMonitor.swf" type="application/x-shockwave-flash">



Properties
 PropertyDefined By
  available : Boolean
Whether the service is currently considered "available." The initial value is false until either a status check sets the property to true or the the property is initialized to true explicitly. Typically, this property is set by the checkStatus() implementation in a subclass or specializer, but if the application has independent information about a service's availability (for example, a request just succeeded or failed), the property can be set explicitly.
ServiceMonitor
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  lastStatusUpdate : Date
[read-only] The time of the last status update.
ServiceMonitor
  pollInterval : Number
The interval, in milliseconds, for polling the server.
ServiceMonitor
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  running : Boolean
[read-only] Whether the monitor has been started.
ServiceMonitor
Public Methods
 MethodDefined By
  
Creates a ServiceMonitor object.
ServiceMonitor
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
 Inherited
dispatchEvent(event:Event):Boolean
Dispatches an event into the event flow.
EventDispatcher
 Inherited
hasEventListener(type:String):Boolean
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
hasOwnProperty(name:String):Boolean
Indicates whether an object has a specified property defined.
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
  
makeJavascriptSubclass(constructorFunction:Object):void
[static] Adds public ServiceMonitor methods to a JavaScript constructor function's prototype.
ServiceMonitor
 Inherited
propertyIsEnumerable(name:String):Boolean
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
Sets the availability of a dynamic property for loop operations.
Object
  
start():void
Start the service monitor.
ServiceMonitor
  
stop():void
Stop monitoring the service.
ServiceMonitor
  
toString():String
Returns the string representation of the specified object.
ServiceMonitor
 Inherited
valueOf():Object
Returns the primitive value of the specified object.
Object
 Inherited
willTrigger(type:String):Boolean
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Protected Methods
 MethodDefined By
  
checkStatus():void
Check the status of the service.
ServiceMonitor
Events
 Event Summary Defined By
 Inherited Dispatched when Flash Player or an AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited Dispatched when Flash Player or an AIR application loses operating system focus and is becoming inactive.EventDispatcher
   Indicates that the service status has changed.ServiceMonitor
Property Detail
availableproperty
available:Boolean  [read-write]

Whether the service is currently considered "available."

The initial value is false until either a status check sets the property to true or the the property is initialized to true explicitly.

Typically, this property is set by the checkStatus() implementation in a subclass or specializer, but if the application has independent information about a service's availability (for example, a request just succeeded or failed), the property can be set explicitly.


lastStatusUpdateproperty 
lastStatusUpdate:Date  [read-only]

The time of the last status update.


pollIntervalproperty 
pollInterval:Number  [read-write]

The interval, in milliseconds, for polling the server.

If zero, the server is not polled periodically, but only immediately after start() is called and when the network status changes.

The default value is 0.


runningproperty 
running:Boolean  [read-only]

Whether the monitor has been started.


Constructor Detail
ServiceMonitor()Constructor
function ServiceMonitor()

Creates a ServiceMonitor object.

The class can be specialized in JavaScript (from HTML application content), as described in the description of the makeJavascriptSubclass() method.

After creating a ServiceMonitor object (or a subclass object), call the start() method to begin monitoring the status of the service.

As with the Timer object, the caller should maintain a reference to the ServiceMonitor object. Otherwise, the runtime deletes the object and monitoring ends.

Method Detail
checkStatus()method
function checkStatus():void

Check the status of the service.

A subclass override method for checking the status of the service.

Typically, this method will initiate a network operation whose completion or failure will result in setting the available property.

JavaScript code can specialise this method by defining a checkStatus() method in the "specializer" object.

makeJavascriptSubclass()method 
function makeJavascriptSubclass(constructorFunction:Object):void

Adds public ServiceMonitor methods to a JavaScript constructor function's prototype.

Adds functions to the JavaScript constructor function's prototype that forward public ServiceMonitor functions to the ServiceMonitor. This approximates a normal JavaScript subclass of the ActionScript base class.

A JavaScript class specializing a ServiceMonitor would look like this:

  // JavaScript Constructor function
  function MyHTTPMonitor(url, method)
  {
      // "that" variable makes "this" available in closures below
      var that = this;
      // Required initialization of the service monitor, returns the actual ServiceMonitor object.
      this.monitor = this.initServiceMonitor();
      // Initializes URLStream and event handlers.
      this._urlStream = new air.URLStream();
      this._urlRequest = new air.URLRequest(url);
      if (method)
      {
          this._urlRequest.method = method;
      }
      else
      {
          this._urlRequest.method = "GET";
      }
      function onStatus(event) {
          that.monitor.available = Number(event.status) == 200;
          that._urlStream.close();
      }
      function onError(event)
      {
          that.monitor.available = false;
          that._urlStream.close();
      }
      this._urlStream.addEventListener(air.HTTPStatusEvent.HTTP_RESPONSE_STATUS, onStatus);
      this._urlStream.addEventListener(air.SecurityErrorEvent.SECURITY_ERROR, onError);
      this._urlStream.addEventListener(air.IOErrorEvent.IO_ERROR, onError);
  }
    // Augment JavaScript prototype with public methods from ServiceMonitor
  air.ServiceMonitor.makeJavascriptSubclass(MyHTTPMonitor);
    // Implement specializer functions, just as you would when subclassing a JavaScript class
  MyHTTPMonitor.prototype.checkStatus = function()
  {
      air.trace('OVERRIDDEN checkStatus!', this);
      this._urlStream.load(this._urlRequest);
  }
  

To use the JavaScript class:

  var httpMon = new MyHTTPMonitor('http://www.adobe.com')
  

Be sure to load the AIRAliases.js and ServiceMonitor.swf files with script tags.

Parameters

constructorFunction:Object — The JavaScript object's prototype property. For example, if the JavaScript object that you are using to serve as a specializer object is named MyHTTPMonitor, pass MyHTTPMonitor.prototype as the value for this parameter.

start()method 
function start():void

Start the service monitor.

stop()method 
function stop():void

Stop monitoring the service.

toString()method 
function toString():String

Returns the string representation of the specified object.

Returns
String — A string representation of the object.
Event Detail
status Event
Event Object Type: flash.events.StatusEvent
StatusEvent.type property = flash.events.Event.STATUS

Indicates that the service status has changed.

The value of the "code" property will be either "Service.available" or "Service.unavailable", but best practice is to check the value of the ServiceMonitor.available property.





 

Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/labs/air/1/jslr/air/net/ServiceMonitor.html