(AIR only)
Packageair.net
Classpublic dynamic class ServiceMonitor
InheritanceServiceMonitor Inheritance EventDispatcher Inheritance Object
Subclasses SocketMonitor, URLMonitor

Implements the framework for monitoring the status and availability of network services. The ServiceMonitor class acts as the base class for all other service monitors.

This class is included in the ServiceMonitorShim.swc file. To use classes in the air.net package in Flash, you must first drag the ServiceMonitorShim component from the Components panel to the Library and then add the following import statement to your ActionScript 3.0 code:

import air.net.*;



Public Properties
 PropertyDefined By
  AIR-onlyavailable : Boolean
Whether the service is currently considered "available".
ServiceMonitor
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  AIR-onlylastStatusUpdate : Date
[read-only] The time of the last status update.
ServiceMonitor
  AIR-onlypollInterval : 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
  AIR-onlyrunning : 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
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
  
AIR-onlymakeJavascriptSubclass(constructorFunction:Object):void
[static] Adds public ServiceMonitor methods to a JavaScript constructor function's prototype.
ServiceMonitor
 Inherited
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
Sets the availability of a dynamic property for loop operations.
Object
  
AIR-onlystart():void
Start the service monitor.
ServiceMonitor
  
AIR-onlystop():void
Stop monitoring the service.
ServiceMonitor
  
Returns the string representation of the specified object.
ServiceMonitor
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
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
  
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
  
AIR-onlystatus
Indicates that the service status has changed.ServiceMonitor
Property Detail
AIR-only 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.


Implementation
    public function get available():Boolean
    public function set available(value:Boolean):void
AIR-only lastStatusUpdateproperty 
lastStatusUpdate:Date  [read-only]

The time of the last status update.


Implementation
    public function get lastStatusUpdate():Date
AIR-only 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 ServiceMonitor object only dispatches a status event if service status has changed (not on every poll interval). The object also dispatches a status event as a result of network connectivity changes (regardles of the poll interval).

The default value is 0.


Implementation
    public function get pollInterval():Number
    public function set pollInterval(value:Number):void
AIR-only runningproperty 
running:Boolean  [read-only]

Whether the monitor has been started.


Implementation
    public function get running():Boolean
Constructor Detail
AIR-only ServiceMonitor()Constructor
public function ServiceMonitor()

Creates a ServiceMonitor object.

This class is typically subclassed to monitor specific service types.

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
AIR-only checkStatus()method
protected 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.

AIR-only makeJavascriptSubclass()method 
public static 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.

AIR-only start()method 
public function start():void

Start the service monitor.

AIR-only stop()method 
public function stop():void

Stop monitoring the service.

AIR-only toString()method 
public override function toString():String

Returns the string representation of the specified object.

Note: Methods of the Object class are dynamically created on Object's prototype. To redefine this method in a subclass of Object, do not use the override keyword. For example, a subclass of Object implements function toString():String instead of using an override of the base class.

Returns
String — A string representation of the object.
Event Detail
AIR-only status Event
Event Object Type: flash.events.StatusEvent
StatusEvent.type property = flash.events.StatusEvent.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.

Defines the value of the type property of a status event object.

This event has the following properties:

PropertyValue
bubblesfalse
cancelablefalse; there is no default behavior to cancel.
codeA description of the object's status.
currentTargetThe object that is actively processing the Event object with an event listener.
levelThe category of the message, such as "status", "warning" or "error".
targetThe object reporting its status.