Шаблон класса CallBackTimer< Caller >

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

#include <CallBackTimer.h>

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

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

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 >

Классы

struct  FindId_eq
struct  TimerInfo


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

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 
) [inline]

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

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


Методы

template<class Caller>
void CallBackTimer< Caller >::run (  )  [inline]

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

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

template<class Caller>
void CallBackTimer< Caller >::terminate (  )  [inline]

остановка

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

Документация по UniSet. Последние изменения: Tue Jul 10 20:46:20 2012. Создано системой  doxygen 1.5.5