Class isp api::GroupAction

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

Класс isp_api::GroupAction

Данный класс является абстрактным

Класс для выполнения действия над группой элементов

#include <action.h> 

Описание:

class isp_api::GroupAction

Предназначен для реализации действий, выполняемых последовательно для каждого элемента из группы; при этом вызывается метод ProcessOne(), в который передается в качестве параметра идентификатор текущего элемента.

Warning: В связи с тем, что все действия выполняются в функции <имя="" операции>="">.one, GroupAction считается модифицирующей функцией. Если это не так необходимо в конструкторе вызвать метод set_modify() или переопределить виртуальный метод IsModify()

class UserDeleteAction : public GroupAction { 
public: 
    UserDeleteAction() : GroupAction("users_list.delete", MinLevel(lvAdmin)) {} 
protected: 
    virtual void ProcessOne(Session &, const string &elid) const { 
        UserDataBase db(USERS_FILE); 
        db.DeleteUser(elid); 
    } 
}; 

Родители:


Потомки:


Классы

class isp_api::GroupAction::OneAction

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

GroupAction ( const string &name , AccessMask accessMask , const Action * parent = nullptr )

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


virtual string type () const

Возвращает строку с типом действия (в данном случае - "group")


void set_one_per_proc ( GroupModeType type = gmOnePerProc )

Выполнять операцию над каждым элементом в отдельном потоке


void set_modify ( bool modify )

Операция изменяет данные

Защищённые члены (кратко)

virtual void ModuleExecute ( Session &ses )

Вызывается при выполнении модуля


virtual void ProcessOne ( Session &ses , const string &elid )

Вызывается при работе действия для каждого элемента из группы


virtual bool IsModify ( const Session &ses )

Изменит ли эта функция какие-нибудь данные

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

GroupAction ( const string &name , AccessMask accessMask , const Action * parent = nullptr )

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

Аргументы:
[in] - name Имя функции, к которой привязано данное действие
[in] - accessMask Уровень доступа пользователя
See also: mgr_access::AccessMask
Аргументы:
[in] - parent Указатель на родительское действие

Методы

virtual string type () const

Возвращает строку с типом действия (в данном случае - "group")

void set_one_per_proc ( GroupModeType type = gmOnePerProc )

Выполнять операцию над каждым элементом в отдельном потоке

void set_modify ( bool modify )

Операция изменяет данные

virtual void ModuleExecute ( Session &ses )

Данный метод является защищённым

Вызывается при выполнении модуля

Вызывается при выполнении модуля; должен быть реализован в классе-потомке

Аргументы:
[inout] - ses Текущая сессия
See also: isp_api::Session

virtual void ProcessOne ( Session &ses , const string &elid )

Данный метод является защищённым

Вызывается при работе действия для каждого элемента из группы

Аргументы:
[inout] - ses Текущая сессия
See also: isp_api::Session
Аргументы:
[in] - elid Идентификатор текущего обрабатываемого элемента

virtual bool IsModify ( const Session &ses )

Данный метод является защищённым

Изменит ли эта функция какие-нибудь данные

По умолчанию считается, что изменит. Если функция возвращает false при ее вызове игнорируется REFERER запроса