Class isp api::Event

Материал из ISPWiki
Перейти к: навигация, поиск

Класс isp_api::Event

Класс-обработчик события

#include <action.h> 

Описание:

class isp_api::Event

Класс позволяет выполнять код до и/или после вызова заданной функции (действия) Для реализации обработки события необходимо написать собственный класс, наследуемый от данного, и переопределить в нем методы BeforeExecute() и AfterExecute() (либо один из них). Регистрация события происходит автоматически при создании объекта класса.

Warning: Не надо вручную удалять объекты унаследованные от класса Event. Они будут удалены автоматически при выгрузке модуля, который их создал

//описание собственного класса-события: 
class EventSetStartPage: public Event { 
public: 
    EventSetStartPage(): Event("desktop", "startpage") {} 
    virtual void BeforeExecute(Session &ses) const { 
        //your code here 
    } 
    virtual void AfterExecute(Session &ses) const { 
        //your code here 
    } 
}; 
//создание объекта класса: 
MODULE_INIT(startpage, "desktop") { 
    new EventSetStartPage; 
} 

Потомки:


Перечисления (кратко)

Перечисление Priority { epBefore , epAfter , }

Тип данных приоритета события

Открытые члены (кратко)

Event ( const string &action , const string &name , Priority priority = epAfter , const string &base = "" )

Конструктор класса


virtual void BeforeExecute ( Session & )

Выполняется перед вызовом заданной функции (действия)


virtual void AfterExecute ( Session & )

Выполняется после вызова заданной функции (действия)


string name () const

Возвращает имя данного события


string priority () const

Возвращает строку приоритета в формате [<>]base::weight.

Приватные члены (кратко)

Перечисления (подробно)

Priority

Тип данных приоритета события

  • epBefore
  • epAfter

Конструкторы

Event ( const string &action , const string &name , Priority priority = epAfter , const string &base = "" )

Конструктор класса

Аргументы:
[in] - action Имя функции (действия), к которой привязано данное событие. Перед выполнением заданной функции будет выполнен метод BeforeExecute(), после выполнения - AfterExecute()
[in] - name Имя события
[in] - priority Приоритет события
[in] - base Имя события, от которого зависит данное событие. Вызов событий происходит в зависимости от приоритета: если приоритет = epBefore, то данное событие будет вызвано до обработчика события с именем base; если приоритет = epAfter, то - после. Если base не указан, то событие будет вызвано перед всеми или после всех остальных обработчиков событий (Event). Через символ '#' вы можете указать вес обработчика. Если несколько обработчиков должны быть размещены в одной позиции - они будут отсортированы в порядке убывания веса. Если вес не задан, его значение принимается равным 100. В случае, если несколько событий имеют однаковый приоритет и вес, порядок их вызова не определен.

Методы

virtual void BeforeExecute ( Session & )

Выполняется перед вызовом заданной функции (действия)

virtual void AfterExecute ( Session & )

Выполняется после вызова заданной функции (действия)

string name () const

Возвращает имя данного события

string priority () const

Возвращает строку приоритета в формате [<>]base::weight.