UniSet  1.4.0
Классы | Открытые типы | Открытые члены | Статические открытые данные | Защищенные члены | Друзья
Шаблон класса CallBackTimer< Caller >

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

#include <CallBackTimer.h>

Полный список членов класса

Классы

struct  FindId_eq
struct  TimerInfo

Открытые типы

typedef void(Caller::* Action )(int id)

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

 CallBackTimer (Caller *r, Action a)
void run ()
void terminate ()
void reset (int id)
void setTiming (int id, int timrMS)
int getInterval (int id)
int getCurrent (int id)
void add (int id, int timeMS) throw (UniSetTypes::LimitTimers)
void remove (int id)

Статические открытые данные

static const int MAXCallBackTimer = 20

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

void work ()
void startTimers ()
void clearTimers ()

Друзья

class ThreadCreator< CBT >

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

template<class Caller>
class CallBackTimer< Caller >

Таймер

Автор:
Pavel Vainerman
Создает поток, в котором происходит отсчет тактов (10ms). Позволяет заказывать до CallBackTimer::MAXCallBackTimer таймеров. При срабатывании будет вызвана указанная функция с указанием Id таймера, который сработал. Функция обратного вызова должна удовлетворять шаблону CallBackTimer::Action. Пример создания таймера:
        class MyClass
        {
            public:
                void Time(int id){ cout << "Timer id: "<< id << endl;}
        };
        
        MyClass* rec = new MyClass();
        ...
        CallBackTimer<MyClass> *timer1 = new CallBackTimer<MyClass>(rec);
        timer1->add(1, &MyClass::Time, 1000);
        timer1->add(5, &MyClass::Time, 1200);
        timer1->run();  
Заметки:
Каждый экземпляр класса CallBackTimer создает поток, поэтому желательно не создавать больше одного экземпляра, для одного процесса (чтобы не порождать много потоков).

Определения типов

template<class Caller>
typedef void(Caller::* CallBackTimer< Caller >::Action)(int id)

прототип функции вызова


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

template<class Caller >
CallBackTimer< Caller >::CallBackTimer ( Caller *  r,
Action  a 
)

Создание таймера

Аргументы:
r- указатель на заказчика

Методы

template<class Caller >
void CallBackTimer< Caller >::add ( int  id,
int  timeMS 
) throw (UniSetTypes::LimitTimers)

добавление нового таймера

Перекрестные ссылки CallBackTimer< Caller >::MAXCallBackTimer.

template<class Caller >
int CallBackTimer< Caller >::getCurrent ( int  id)

получить текущее значение таймера

template<class Caller >
int CallBackTimer< Caller >::getInterval ( int  id)

получить интервал, на который установлен таймер, в мс

template<class Caller >
void CallBackTimer< Caller >::remove ( int  id)

удаление таймера

template<class Caller >
void CallBackTimer< Caller >::reset ( int  id)

перезапустить таймер

template<class Caller >
void CallBackTimer< Caller >::run ( )

запуск таймера

Перекрестные ссылки CallBackTimer< Caller >::terminate().

template<class Caller >
void CallBackTimer< Caller >::setTiming ( int  id,
int  timrMS 
)

установить таймер и запустить

template<class Caller >
void CallBackTimer< Caller >::terminate ( )

остановка

Используется в CallBackTimer< Caller >::run().


Данные класса

template<class Caller>
const int CallBackTimer< Caller >::MAXCallBackTimer = 20 [static]

Максимальное количество таймеров

Используется в CallBackTimer< Caller >::add().


Объявления и описания членов классов находятся в файлах: