mozilla
Your Search Results

    nsIObserver

    « Справочник XPCOM API

    Краткое описание

    nsIObserver обеспечивает объекту возможность принимать сообщения. Такие сообщения обычно (но не всегда) рассылаются с помощью интерфейса nsIObserverService.

    Please add a summary to this article.
      Last changed in Gecko 0.9.6

    Код интерфейса

    [scriptable, uuid(DB242E01-E4D9-11d2-9DDE-000064657374)]
    interface nsIObserver : nsISupports
    {
        void observe( in nsISupports aSubject,
                      in string      aTopic,
                      in wstring     aData );
    };
    

    Методы

    observe

    void observe( in nsISupports aSubject,
                  in string      aTopic,
                  in wstring     aData );
    

    Метод observe вызывается тогда, когда приходит сообщение на ту тему, для прослушивания которой объект был зарегистрирован.

    Обычно, в aSubject содержится объект, в результате изменения или другого действия над которым было создано полученное сообщение. Параметр aTopic определяет тип действия или изменения. А необязательный параметр aData и другие данные дополняют информацию о совершенном действии или изменении.

    Конкретные значения, а так же смысл переданных параметров бывают разными, в зависимости от того где был зарегистрирован приемник и какая тема прослушивается.

    Конкретный пример использования интерфейса nsIObserver может быть настроен на получение множества типов сообщений, и может вести себя по-разному в зависимости от переданных параметров. Чаще всего, основной параметр для выбора дальнейших действий — это aTopic, и в коде надо учитывать, что метод может быть вызван с неизвестным на момент написания значением параметра aTopic.

    Так как система, обслуживающая прием сообщений, может вызывать конкретный приемник в разных контекстах, настоятельно рекомендуется не добавлять и не удалять приеники непосредственно в момент вызова метода observe.

    Связанные интерфейсы

    nsIObserverService

    Пример кода

    Следующий пример демонстрирует применение интерфейса nsIObserver, который позволяет зарегистрировать объект в системе пользовательских настроек для получения сообщений об изменении каких-либо значений (полный код примера и дополнительную информацию о системе настроек см. на странице Использование настроек из MozillaZine).

    var prefObserver = {
      // nsIObserver
      observe: function (aSubject, aTopic, aData) {
        if (aTopic == "nsPref:changed") { // observe preference changes
          // aData contains the name of the changed preference
          dump(aData+" changed!");
        }
      },
    
      QueryInterface: function(aIID) {
        if(!aIID.equals(CI.nsISupports) && !aIID.equals(CI.nsIObserver))
          throw CR.NS_ERROR_NO_INTERFACE;
        return this;
      }
    };
    

    См. также

    Метки документа и участники

    Contributors to this page: JPEG, teoli, Dionys
    Обновлялась последний раз: teoli,