elemental.html.Worker Maven / Gradle / Ivy
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package elemental.html;
import elemental.util.Indexable;
import elemental.events.EventListener;
import elemental.events.*;
import elemental.util.*;
import elemental.dom.*;
import elemental.html.*;
import elemental.css.*;
import elemental.stylesheets.*;
import java.util.Date;
/**
* Workers are background tasks that can be easily created and can send messages back to their creators. Creating a worker is as simple as calling the Worker()
constructor, specifying a script to be run in the worker thread.
Of note is the fact that workers may in turn spawn new workers as long as those workers are hosted within the same origin as the parent page. In addition, workers may use XMLHttpRequest
for network I/O, with the exception that the responseXML
and channel
attributes on XMLHttpRequest
always return null
.
For a list of global functions available to workers, see Functions available to workers.
Gecko 2.0 note(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
If you want to use workers in extensions, and would like to have access to js-ctypes, you should use the ChromeWorker
object instead.
See Using web workers for examples and details.
*/
public interface Worker extends AbstractWorker {
/**
* An event listener that is called whenever a MessageEvent
with type message
bubbles through the worker. The message is stored in the event's data
member.
*/
EventListener getOnmessage();
void setOnmessage(EventListener arg);
/**
* Sends a message to the worker's inner scope. This accepts a single parameter, which is the data to send to the worker. The data may be any value or JavaScript object that does not contain functions or cyclical references (since the object is converted to JSON internally).
Parameters
aMessage
- The object to deliver to the worker; this will be in the data field in the event delivered to the
onmessage
handler. This may be any value or JavaScript object that does not contain functions or cyclical references (since the object is converted to JSON internally).
*/
void postMessage(Object message);
/**
* Sends a message to the worker's inner scope. This accepts a single parameter, which is the data to send to the worker. The data may be any value or JavaScript object that does not contain functions or cyclical references (since the object is converted to JSON internally).
Parameters
aMessage
- The object to deliver to the worker; this will be in the data field in the event delivered to the
onmessage
handler. This may be any value or JavaScript object that does not contain functions or cyclical references (since the object is converted to JSON internally).
*/
void postMessage(Object message, Indexable messagePorts);
/**
* Immediately terminates the worker. This does not offer the worker an opportunity to finish its operations; it is simply stopped at once.
void terminate();
*/
void terminate();
void webkitPostMessage(Object message);
void webkitPostMessage(Object message, Indexable messagePorts);
}