Class isp api::GlobalEvent

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

Класс isp_api::GlobalEvent

Класс, представляющий собой глобальное событие

#include <action.h> 

Описание:

class isp_api::GlobalEvent

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

//описание собственного класса глобального события: 
class EventDashboard : public GlobalEvent { 
public: 
    EventDashboard() : GlobalEvent("dashboard") {} 
 
    virtual void BeforeAction(Session &ses) const { 
        if (!ses.conn.has_param("dashboard")) 
            return; 
        mgr_xml::Xml xml; 
        xml.LoadFromFile(GetUserDashboard(ses.auth.name())); 
        string block_name = ses.conn.param("func"); 
        mgr_xml::XmlNode block_node = xml.GetNode("//block[@name='"+block_name+"']"); 
        if (block_node && block_node.GetProp("type") == "list") { 
            ses.SetParam("p_cnt", block_node.GetProp("rows")); 
        } 
    } 
    virtual void AfterAction(Session &ses) const { 
        if (!ses.conn.has_param("dashboard")) 
            return; 
        ses.xml.GetNode("//metadata").SetProp("type", "dashboard"); 
    } 
}; 
//создание объекта класса: 
MODULE_INIT(dashboard, "") { 
    new EventDashboard(); 
} 

Родители:


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

GlobalEvent ( const string &name , Priority = epAfter , const string &base = "" )

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


virtual void BeforeAction ( Session & )

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


virtual void AfterAction ( Session & )

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

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

virtual void BeforeExecute ( Session & )

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


virtual void AfterExecute ( Session & )

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

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

GlobalEvent ( const string &name , Priority = epAfter , const string &base = "" )

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

Аргументы:
[in] - name Имя события
[in] - Приоритет события
[in] - base Имя события, от которого зависит данное событие. Вызов событий происходит в зависимости от приоритета: если приоритет = epBefore, то данное событие будет вызвано до события base; если приоритет = epAfter, то - после.

Методы

virtual void BeforeAction ( Session & )

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

virtual void AfterAction ( Session & )

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

virtual void BeforeExecute ( Session & )

Данный метод является приватным

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

virtual void AfterExecute ( Session & )

Данный метод является приватным

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