PIP 5.5.3
Platform-Independent Primitives
Открытые члены | Защищенные члены | Полный список членов класса
Класс PITimer

Таймер Подробнее...

#include <pitimer.h>

Граф наследования:PITimer:
Inheritance graph
[см. легенду]

Открытые члены

 PITimer ()
 Создает таймер
 
 PITimer (std::function< void(int)> func)
 Создает таймер с функцией void(int)
 
 PITimer (std::function< void()> func)
 Создает таймер с функцией void()
 
PISystemTime interval () const
 Возвращает задержку цикла таймера
 
void setInterval (PISystemTime interval)
 Установить интервал таймера
 
bool isRunning () const
 Возвращает работает ли таймер
 
bool isStopping () const
 Возвращает останавливается ли таймер
 
bool waitForFinish (PISystemTime timeout={})
 Ожидает остановки таймера
 
bool start (PISystemTime interval)
 Запустить таймер с интервалом "interval".
 
bool start (PISystemTime interval, std::function< void()> func)
 Запустить таймер с интервалом "interval" и вызываевымым методом "func".
 
void stopAndWait (int timeout_ms)
 Останавливает таймер и ожидает завершения.
 
void stopAndWait (PISystemTime timeout={})
 Останавливает таймер и ожидает завершения.
 
void setSlot (std::function< void()> func)
 Установить вызываемый метод
 
void setSlot (std::function< void(int)> func)
 Установить вызываемый метод
 
bool isCallQueuedEvents () const
 Возвращает должен ли таймер вызывать maybeCallQueuedEvents() каждый тик. По умолчанию true.
 
void setCallQueuedEvents (bool yes)
 Установает должен ли таймер вызывать maybeCallQueuedEvents() каждый тик
 
void addDelimiter (int delim, std::function< void(int)> func=nullptr)
 Добавляет делитель частоты "delim" с необязательным методом "slot".
 
void addDelimiter (int delim, std::function< void()> func)
 Добавляет делитель частоты "delim" с необязательным методом "slot".
 
void addDelimiter (int delim, std::function< void(void *)> slot)
 Добавляет делитель частоты "delim" с необязательным методом "slot".
 
void removeDelimiter (int delim)
 Удаляет все делители частоты "delim".
 
- Открытые члены унаследованные от PIObject
 PIObject (const PIString &name=PIString())
 Создает PIObject с именем "name".
 
PIString name () const
 Возвращает имя объекта
 
virtual const char * className () const
 Возвращает имя класса объекта
 
virtual const char * parentClassName () const
 Возвращает имя родительского класса
 
bool debug () const
 Возвращает включен ли вывод piCoutObj для этого объекта
 
void setName (const PIString &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".
 
PIStringList scopeList () const
 Возвращает цепочку наследования объекта (вместе с классом самого объекта)
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает все соединения от события "sig" к объекту "dest" и обработчику "ev_h".
 
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
 Возвращает действительный ли это наследник PIObject типа "T" (проверяет подпись и имя класса)
 
template<typename T >
T * cast () const
 Возвращает преобразование к типу T если это действительный наследник типа "T" (проверяет через isTypeOf()), или "nullptr".
 
void callQueuedEvents ()
 Выполнить все отложенные события от CONNECTU_QUEUED соединений
 
bool maybeCallQueuedEvents ()
 Если было хотя бы одно CONNECTU_QUEUED соединение с исполнителем this, то выполнить события Подробнее...
 
void deleteLater ()
 Пометить объект на удаление Подробнее...
 
void deleted (PIObject *o)
 Вызывается перед удалением объекта Подробнее...
 

Защищенные члены

virtual void tick (int delimiter)
 Timer execution function, similar to "slot" or event timeout(). By default does nothing.
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает PIObject* который вызвал это событие. Значение допустимо только из методов обработчиков событий
 
virtual void propertyChanged (const char *name)
 Виртуальная функция, вызывается после изменения любого свойства.
 

Handlers

bool start ()
 Запустить таймер с интервалом interval()
 
bool restart ()
 Остановить и запустить таймер с интервалом interval()
 
void stop ()
 Остановить таймер (не дожидается остановки)
 
void clearDelimiters ()
 Удаляет все делители частоты
 

Events

void tickEvent (int delimiter)
 Вызывается каждый тик таймера Подробнее...
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от PIObject
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает все соединения от события "sig" объекта "src" к объекту "dest" и обработчику "ev_h".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Разрывает все соединения от события "sig" объекта "src" к объекту "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Разрывает все соединения от события "sig" объекта "src".
 
static PIObjectfindByName (const PIString &name)
 Returns PIObject* with name "name" or 0, if there is no object found.
 
static bool isPIObject (const PIObject *o)
 Возвращает действительный ли "o" PIObject (проверяет подпись)
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Возвращает действительный ли "o" наследник PIObject типа "T" (проверяет подпись и имя класса)
 

Подробное описание

Таймер

Краткий обзор

Этот класс реализует таймер. Таймер PIP поддерживает 3 варианта уведомления, отложенный старт и делители частоты.

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

Варианты уведомления:

Лямбда-функция должна быть в формате [ ]( ){ } или [ ](int){ }.

Все варианты аналогичны друг другу, используйте самый удобный.

Делители частоты

Делитель частоты это целое число и необязательный метод "slot". Если метод не указан, то будет использован основной "slot". Каждые delimiter тиков будет дополнительно вызван "slot" делителя либо основной "slot" с аргументом delimiter равным значению делителя.

Пример:

void tfunc(int delim) {
piCout << "tick with delimiter" << delim;
};
void tfunc4(int delim) {
piCout << "tick4 with delimiter" << delim;
};
int main() {
PITimer timer(tfunc);
timer.addDelimiter(2);
timer.addDelimiter(4, tfunc4);
timer.start(50);
piMSleep(200);
timer.stopAndWait();
return 0;
};
/* Result:
tick with delimiter 1
tick with delimiter 1
tick with delimiter 2
tick with delimiter 1
tick with delimiter 1
tick with delimiter 2
tick4 with delimiter 4
*/
Таймер
Definition: pitimer.h:36
void piMSleep(double msecs)
Точно ожидает "msecs" миллисекунд
Definition: pitime.h:42
#define piCout
Макрос для условного (piDebug) вывода в PICout(StdOut)
Definition: picout.h:35

Методы

◆ tickEvent()

void PITimer::tickEvent ( int  delimiter)

Вызывается каждый тик таймера

"delimiter" - делитель частоты, 1 для основного цикла