|
|
| PIThreadPoolWorker (int threads_count=-1) |
| | Создает исполнитель с threads_count рабочими потоками. Если threads_count < 0 используется количество потоков процессора.
|
| |
|
virtual | ~PIThreadPoolWorker () |
| | Уничтожает рабочие потоки. Вызывайте перед этим stopAndWait().
|
| |
|
void | start () |
| | Запускает потоки.
|
| |
|
void | stop () |
| | Запрашивает корректное завершение потоков.
|
| |
|
bool | stopAndWait (PISystemTime timeout={}) |
| | Запрашивает остановку и ожидает завершения потоков. Возвращает false, если таймаут истек.
|
| |
|
bool | waitForStart (PISystemTime timeout={}) |
| | Ожидает запуска потоков. Возвращает false, если таймаут истек раньше.
|
| |
|
bool | waitForFinish (PISystemTime timeout={}) |
| | Ожидает завершения потоков. Возвращает false, если таймаут истек раньше.
|
| |
|
bool | isRunning () const |
| | Возвращает, выполняются ли потоки в данный момент.
|
| |
|
bool | waitForTasks (PISystemTime timeout={}) |
| | Ожидает завершения всех задач. Возвращает false, если таймаут истек раньше.
|
| |
|
bool | waitForTask (int64_t id, PISystemTime timeout={}) |
| | Ожидает завершения задачи с id id. Возвращает false, если таймаут истек раньше.
|
| |
|
void | exec () |
| | Запускает потоки, ожидает завершения всех задач и остановки потоков.
|
| |
|
int64_t | enqueueTask (std::function< void(int64_t)> func, PIObject *context=nullptr) |
| | Запланировать функтор на выполнение. В функтор передастся ID задачи. Возвращает ID задачи.
|
| |
|
int64_t | enqueueTask (std::function< void()> func, PIObject *context=nullptr) |
| | Запланировать функтор на выполнение. Возвращает ID задачи.
|
| |
|
template<typename O > |
| int64_t | enqueueTask (O *obj, void(O::*member_func)(int64_t)) |
| | Запланировать член-метод класса на выполнение. В метод передастся ID задачи. Возвращает ID задачи.
|
| |
|
template<typename O > |
| int64_t | enqueueTask (O *obj, void(O::*member_func)()) |
| | Запланировать член-метод класса на выполнение. Возвращает ID задачи.
|
| |
|
bool | removeTask (int64_t id) |
| | Удаляет задачу с id id из очереди. Возвращиает была ли задача удалена.
|
| |
|
void | clearTasks () |
| | Удаляет все задачи из очереди.
|
| |
|
TaskStatus | taskStatus (int64_t id) const |
| | Возвращиает статус задачи с id id.
|
| |
|
| PIObject (const PIString &name=PIString()) |
| | Создает объект и инициализирует его свойство name.
|
| |
|
virtual | ~PIObject () |
| | Уничтожает объект, вызывает deleted() и отключает его от событийного графа.
|
| |
|
PIString | name () const |
| | Возвращает свойство name этого объекта.
|
| |
|
virtual const char * | className () const |
| | Возвращает зарегистрированное имя класса этого объекта.
|
| |
|
virtual uint | classNameID () const |
| | Возвращает хэш от className().
|
| |
|
virtual const char * | parentClassName () const |
| | Возвращает зарегистрированное имя родительского класса, либо пустую строку для корня.
|
| |
|
bool | debug () const |
| | Возвращает, включен ли вывод piCoutObj для этого объекта.
|
| |
|
void | setName (const PIString &name) |
| | Устанавливает свойство name этого объекта.
|
| |
|
void | setDebug (bool debug) |
| | Включает или отключает вывод piCoutObj для этого объекта.
|
| |
|
PIVariant | property (const char *name) const |
| | Возвращает свойство объекта по имени "name".
|
| |
| void | setProperty (const char *name, const PIVariant &value) |
| | Устанавливает свойство "name" в значение "value" и создаёт его при необходимости. Подробнее...
|
| |
|
bool | isPropertyExists (const char *name) const |
| | Возвращает, существует ли свойство "name".
|
| |
| void | setThreadSafe (bool yes) |
| | Включает или отключает внутренний мьютекс объекта во время выполнения обработчиков. Подробнее...
|
| |
|
bool | isThreadSafe () const |
| | Возвращает, включен ли внутренний мьютекс объекта для выполнения обработчиков.
|
| |
| bool | execute (const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Выполняет зарегистрированный метод или метод-обработчик по имени с переданными аргументами. Подробнее...
|
| |
|
bool | execute (const PIString &method) |
| | Перегрузка execute() для метода без аргументов.
|
| |
|
bool | execute (const PIString &method, const PIVariantSimple &v0) |
| | Перегрузка execute() для одного аргумента.
|
| |
|
bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Перегрузка execute() для двух аргументов.
|
| |
|
bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Перегрузка execute() для трёх аргументов.
|
| |
|
bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Перегрузка execute() для четырёх аргументов.
|
| |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Ставит выполнение зарегистрированного метода в очередь объекта-исполнителя. Подробнее...
|
| |
|
bool | executeQueued (PIObject *performer, const PIString &method) |
| | Перегрузка executeQueued() для метода без аргументов.
|
| |
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| | Перегрузка executeQueued() для одного аргумента.
|
| |
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Перегрузка executeQueued() для двух аргументов.
|
| |
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Перегрузка executeQueued() для трёх аргументов.
|
| |
|
bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Перегрузка executeQueued() для четырёх аргументов.
|
| |
|
void | dump (const PIString &line_prefix=PIString()) const |
| | Выводит диагностическую информацию об объекте в проектный поток вывода.
|
| |
|
PIStringList | scopeList () const |
| | Возвращает зарегистрированную цепочку наследования объекта, включая его собственный класс.
|
| |
|
PIStringList | methodsEH () const |
| | Возвращает полные сигнатуры всех зарегистрированных событий и обработчиков для области этого класса.
|
| |
|
bool | isMethodEHContains (const PIString &name) const |
| | Возвращает, существует ли зарегистрированное событие или обработчик с таким именем.
|
| |
|
PIString | methodEHArguments (const PIString &name) const |
| | Возвращает список типов аргументов зарегистрированного метода через запятую.
|
| |
|
PIString | methodEHFullFormat (const PIString &name) const |
| | Возвращает полную зарегистрированную сигнатуру метода.
|
| |
|
PIString | methodEHFromAddr (const void *addr) const |
| | Возвращает имя зарегистрированного метода для указанного адреса точки входа.
|
| |
|
void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| | Разрывает соединения этого объекта-источника с конкретным обработчиком объекта-приемника для события "sig".
|
| |
|
void | piDisconnect (const PIString &sig, PIObject *dest) |
| | Разрывает все соединения этого объекта-источника от события "sig" к объекту-приемнику "dest".
|
| |
|
void | piDisconnect (const PIString &sig) |
| | Разрывает все соединения этого объекта-источника от события "sig".
|
| |
|
bool | isPIObject () const |
| | Возвращает, указывает ли этот указатель на ещё существующий экземпляр PIObject.
|
| |
|
template<typename T > |
| bool | isTypeOf () const |
| | Возвращает, принадлежит ли этот объект классу "T" или одному из его зарегистрированных потомков.
|
| |
|
template<typename T > |
| T * | cast () const |
| | Возвращает этот объект, приведённый к типу "T", если isTypeOf<T>() успешно, иначе nullptr.
|
| |
|
void | callQueuedEvents () |
| | Выполняет все отложенные доставки, поставленные в очередь этому объекту-исполнителю.
|
| |
| bool | maybeCallQueuedEvents () |
| | Выполняет отложенные доставки только если этот объект использовался как исполнитель. Подробнее...
|
| |
| void | deleteLater () |
| | Планирует отложенное удаление объекта. Подробнее...
|
| |
| void | deleted (PIObject *o) |
| | Вызывается непосредственно перед уничтожением объекта. Подробнее...
|
| |
|
|
static bool | execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Статическая удобная обёртка над execute().
|
| |
|
static bool | execute (PIObject *o, const PIString &method) |
| | Статическая перегрузка execute() без аргументов.
|
| |
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0) |
| | Статическая перегрузка execute() для одного аргумента.
|
| |
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Статическая перегрузка execute() для двух аргументов.
|
| |
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Статическая перегрузка execute() для трёх аргументов.
|
| |
|
static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Статическая перегрузка execute() для четырёх аргументов.
|
| |
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| | Статическая удобная обёртка над executeQueued().
|
| |
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method) |
| | Статическая перегрузка executeQueued() без аргументов.
|
| |
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| | Статическая перегрузка executeQueued() для одного аргумента.
|
| |
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| | Статическая перегрузка executeQueued() для двух аргументов.
|
| |
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| | Статическая перегрузка executeQueued() для трёх аргументов.
|
| |
|
static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| | Статическая перегрузка executeQueued() для четырёх аргументов.
|
| |
|
static PIObject::Connection | piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc) |
| | Низкоуровневый помощник прямого соединения, лежащий под устаревшими макросами CONNECT*.
|
| |
|
static PIObject::Connection | piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0) |
| | Низкоуровневый помощник соединения по имени, лежащий под CONNECTU() и CONNECTU_QUEUED().
|
| |
|
static PIObject::Connection | piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc) |
| | Низкоуровневый помощник, который соединяет событие с лямбдой или обёрткой функтора.
|
| |
|
static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| | Разрывает соединения объекта-источника "src" с конкретным обработчиком объекта-приемника для события "sig".
|
| |
|
static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| | Разрывает все соединения объекта-источника "src" от события "sig" к объекту-приемнику "dest".
|
| |
|
static void | piDisconnect (PIObject *src, const PIString &sig) |
| | Разрывает все соединения объекта-источника "src" от события "sig".
|
| |
|
static void | raiseEvent (PIObject *sender, const uint eventID) |
| | Внутренний помощник доставки для зарегистрированных событий без аргументов.
|
| |
|
template<typename T0 > |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0()) |
| | Внутренний помощник доставки для зарегистрированных событий с одним аргументом.
|
| |
|
template<typename T0 , typename T1 > |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1()) |
| | Внутренний помощник доставки для зарегистрированных событий с двумя аргументами.
|
| |
|
template<typename T0 , typename T1 , typename T2 > |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2()) |
| | Внутренний помощник доставки для зарегистрированных событий с тремя аргументами.
|
| |
|
template<typename T0 , typename T1 , typename T2 , typename T3 > |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3()) |
| | Внутренний помощник доставки для зарегистрированных событий с четырьмя аргументами.
|
| |
|
static PIObject * | findByName (const PIString &name) |
| | Возвращает первый живой объект с именем "name", либо nullptr.
|
| |
|
static bool | isPIObject (const PIObject *o) |
| | Возвращает, указывает ли "o" на ещё существующий экземпляр PIObject.
|
| |
|
static bool | isPIObject (const void *o) |
| | Перегрузка isPIObject() для нетипизированного указателя.
|
| |
|
template<typename T > |
| static bool | isTypeOf (const PIObject *o) |
| | Возвращает, принадлежит ли "o" классу "T" или одному из его зарегистрированных потомков.
|
| |
|
template<typename T > |
| static bool | isTypeOf (const void *o) |
| | Перегрузка isTypeOf() для нетипизированного указателя.
|
| |
|
static PIString | simplifyType (const char *a, bool readable=true) |
| | Упрощает запись типа C++ для метаданных зарегистрированных методов.
|
| |
| PIObject * | emitter () const |
| | Возвращает объект-источник, который вызвал текущее событие. Подробнее...
|
| |
|
virtual void | propertyChanged (const char *name) |
| | Виртуальный метод, вызываемый после изменения свойства "name" через setProperty().
|
| |
|
#define | piCoutObj |
| | Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdOut) для наследников PIObject.
|
| |
|
#define | piCerrObj |
| | Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdErr) для наследников PIObject.
|
| |
|
#define | PIOBJECT(name) |
| | Поместите этот макрос внутрь объявления прямого наследника PIObject, чтобы включить регистрацию событий, обработчиков и метаданных класса.
|
| |
|
#define | PIOBJECT_SUBCLASS(name, parent) |
| | Поместите этот макрос внутрь объявления наследника PIObject, чтобы унаследовать зарегистрированные методы и цепочку классов от "parent".
|
| |
|
#define | EVENT_HANDLER0(ret, name) ret name() |
| | Объявляет зарегистрированный метод-обработчик событий с сигнатурой ret name().
|
| |
|
#define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| | Объявляет зарегистрированный метод-обработчик событий с одним аргументом.
|
| |
|
#define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| | Объявляет зарегистрированный метод-обработчик событий с двумя аргументами.
|
| |
|
#define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| | Объявляет зарегистрированный метод-обработчик событий с тремя аргументами.
|
| |
|
#define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| | Объявляет зарегистрированный метод-обработчик событий с четырьмя аргументами.
|
| |
|
#define | EVENT_HANDLER EVENT_HANDLER0 |
| | Аналог EVENT_HANDLER0.
|
| |
|
#define | EVENT_VHANDLER0(ret, name) virtual ret name() |
| | Объявляет виртуальный зарегистрированный метод-обработчик с сигнатурой virtual ret name().
|
| |
|
#define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| | Объявляет виртуальный зарегистрированный метод-обработчик с одним аргументом.
|
| |
|
#define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| | Объявляет виртуальный зарегистрированный метод-обработчик с двумя аргументами.
|
| |
|
#define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| | Объявляет виртуальный зарегистрированный метод-обработчик с тремя аргументами.
|
| |
|
#define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| | Объявляет виртуальный зарегистрированный метод-обработчик с четырьмя аргументами.
|
| |
|
#define | EVENT_VHANDLER EVENT_VHANDLER0 |
| | Аналог EVENT_VHANDLER0.
|
| |
|
#define | EVENT0(name) void name(); |
| | Объявляет метод-событие без аргументов.
|
| |
|
#define | EVENT1(name, type0, var0) void name(type0 var0); |
| | Объявляет метод-событие с одним аргументом.
|
| |
|
#define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| | Объявляет метод-событие с двумя аргументами.
|
| |
|
#define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| | Объявляет метод-событие с тремя аргументами.
|
| |
|
#define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| | Объявляет метод-событие с четырьмя аргументами.
|
| |
|
#define | EVENT EVENT0 |
| | Аналог EVENT0.
|
| |
|
#define | RAISE_EVENT0(src, event) |
| | Совместимый вспомогательный макрос, вызывающий событие "event" у объекта-источника "src".
|
| |
|
#define | RAISE_EVENT1(src, event, v0) |
| | Совместимый вспомогательный макрос, вызывающий событие "event" с одним аргументом.
|
| |
|
#define | RAISE_EVENT2(src, event, v0, v1) |
| | Совместимый вспомогательный макрос, вызывающий событие "event" с двумя аргументами.
|
| |
|
#define | RAISE_EVENT3(src, event, v0, v1, v2) |
| | Совместимый вспомогательный макрос, вызывающий событие "event" с тремя аргументами.
|
| |
|
#define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| | Совместимый вспомогательный макрос, вызывающий событие "event" с четырьмя аргументами.
|
| |
| #define | CONNECTU(src, event, dest, handler) |
| | Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее...
|
| |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| | Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее...
|
| |
| #define | CONNECTL(src, event, functor) |
| | Соединяет событие "event" объекта "src" к лямбда-функции "functor". Подробнее...
|
| |
| #define | CONNECT0(ret, src, event, dest, handler) |
| | Устаревший совместимый макрос, который соединяет событие с зарегистрированным обработчиком через явное указание сигнатуры. Подробнее...
|
| |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| | Устаревший совместимый макрос для зарегистрированного события или обработчика с одним аргументом. Подробнее...
|
| |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| | Устаревший совместимый макрос для зарегистрированного события или обработчика с двумя аргументами. Подробнее...
|
| |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| | Устаревший совместимый макрос для зарегистрированного события или обработчика с тремя аргументами. Подробнее...
|
| |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| | Устаревший совместимый макрос для зарегистрированного события или обработчика с четырьмя аргументами. Подробнее...
|
| |
| #define | CONNECT CONNECT0 |
| | Аналог CONNECT0. Подробнее...
|
| |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| | Устаревший совместимый макрос, который пропускает проверку исходного метода. Подробнее...
|
| |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| | Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с одним аргументом. Подробнее...
|
| |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| | Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с двумя аргументами. Подробнее...
|
| |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| | Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с тремя аргументами. Подробнее...
|
| |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| | Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с четырьмя аргументами. Подробнее...
|
| |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| | Аналог WEAK_CONNECT0. Подробнее...
|
| |
|
#define | DISCONNECT0(ret, src, event, dest, handler) |
| | Разрывает соединение зарегистрированного события с зарегистрированным обработчиком.
|
| |
|
#define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| | Разрывает соединение зарегистрированного события с одним аргументом и зарегистрированного обработчика.
|
| |
|
#define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| | Разрывает соединение зарегистрированного события с двумя аргументами и зарегистрированного обработчика.
|
| |
|
#define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| | Разрывает соединение зарегистрированного события с тремя аргументами и зарегистрированного обработчика.
|
| |
|
#define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| | Разрывает соединение зарегистрированного события с четырьмя аргументами и зарегистрированного обработчика.
|
| |
|
#define | DISCONNECT DISCONNECT0 |
| | Аналог DISCONNECT0.
|
| |
|
#define | HANDLER(handler) |
| | Низкоуровневый вспомогательный макрос, который разворачивается в точку входа зарегистрированного обработчика.
|
| |