nsIObserverService

来源:互联网 发布:猴王水果竞猜php源码 编辑:程序博客网 时间:2024/04/30 00:57
xpcom/ds/nsIObserverService.idlScriptable
This interface provides methods to add, remove, notify, and enumerate observers of various notifications.
Inherits from: nsISupportsLast changed in Gecko 0.9.6

The XPCOM nsObserverService implements this interface to provide global notifications for a variety of subsystems.

Implemented by @mozilla.org/observer-service;1 as a service:

var observerService = Components.classes["@mozilla.org/observer-service;1"]                      .getService(Components.interfaces.nsIObserverService);

Method overview
Edit section

void addObserver( in nsIObserver anObserver, in string aTopic, in boolean ownsWeak);nsISimpleEnumerator enumerateObservers( in string aTopic );void notifyObservers( in nsISupports aSubject, in string aTopic, in wstring someData );void removeObserver( in nsIObserver anObserver, in string aTopic );

Methods
Edit section

addObserver()
Edit section

Registers a given listener for a notifications regarding the specified topic. See nsIObserver for a JavaScript example.

void addObserver(  in nsIObserver anObserver,  in string aTopic,  in boolean ownsWeak);
Parameters
Edit section
anObserver
The nsIInterface object which will receive notifications.
aTopic
The notification topic or subject.
ownsWeak
If set to false, the nsIObserverService will hold a strong reference to anObserver. If set to true and anObserver supports the nsIWeakReference interface, a weak reference will be held. Otherwise an error will be returned. (In most cases, you should use false.)

enumerateObservers()
Edit section

Called to enumerate all observers registered for a particular topic.

nsISimpleEnumerator enumerateObservers(  in string aTopic );
Parameters
Edit section
aTopic
The notification topic or subject.
Return value
Edit section

Returns an enumeration of all registered listeners. See nsISimpleEnumerator.

notifyObservers()
Edit section

This method is called to notify all observers for a particular topic. See Example.

void notifyObservers(  in nsISupports aSubject,  in string aTopic,  in wstring someData );
Parameters
Edit section
aSubject
A notification specific interface pointer. This usually corresponds to the source of the notification, but could be defined differently depending on the notification topic and may even be null.
aTopic
The notification topic. This string-valued key uniquely identifies the notification. This parameter must not be null.
someData
A notification specific string value. The meaning of this parameter is dependent on the topic. It may be null.

removeObserver()
Edit section

This method is called to unregister an observer for a particular topic.

void removeObserver(  in nsIObserver anObserver,  in string aTopic );
Parameters
Edit section
anObserver
The nsIObserver instance to remove.
aTopic
The notification topic or subject. This string-valued key uniquely identifies the notification. This parameter must not be null.

Example
Edit section

This notifies all nsIObservers watching the "myTopicID" topic with an additional data parameter.

1Components.classes["@mozilla.org/observer-service;1"]
2          .getService(Components.interfaces.nsIObserverService)
3          .notifyObservers(null, "myTopicID", "someAdditionalInformationPassedAs'Data'Parameter");

See also
Edit section

  • nsObserverService
  • Observer Notifications provides an overview of observers and a list of built-in notifications fired by Mozilla.
  • Usage examples are provided in the nsIObserver documentation.
原创粉丝点击