//+------------------------------------------------------------------+
//|                                                  ExLib_Timer.mqh |
//|                                    (c) 2008 by Sergey A. Gridnev |
//|                                                                * |
//+------------------------------------------------------------------+
#property copyright "(c) 2008 by Sergey A. Gridnev"
#property link      "*"

//+------------------------------------------------------------------+
//| EX4 imports                                                      |
//+------------------------------------------------------------------+
#import "ExLib_Timer.ex4"
//
// Примечание.
// Идентификатор счетчика <CounterID> может принимать любое значение кроме "0",
// т.к. значение "0" зарезервировано для обозначения незадействованных счетчиков
// в общем массиве.
//
void timer_Init();
// начальная инициализация
//
int timer_NumberTotal();
// запрос общего количества счетчиков таймера
// Возврат:
//    общее количество счетчиков
//
int timer_NumberUsed();
// запрос количества задействованных счетчиков
// Возврат:
//    количество задействованных счетчиков
//
int timer_NumberFree();
// запрос количества незадействованных (свободных) счетчиков
// Возврат:
//    количество свободных счетчиков
//
void timer_ResetAll();
// сброс (обнуление) всех счетчиков
//
bool timer_Reset(int CounterID);
// сброс (обнуление) счетчика по идентификатору
// Параметры:
//    <CounterID> - идентификатор счетчика
// Возврат:
//    true  - сбос произведен
//    false - счетчик с заданным идентификатором не обнаружен
//
void timer_DeleteAll();
// удаление всех счетчиков
//
bool timer_Delete(int CounterID);
// удаление счетчика по идентификатороу
// Параметры:
//    <CounterID> - идентификатор счетчика
// Возврат:
//    true  - удаление произведено
//    false - счетчик с заданным идентификатором не обнаружен
//
bool timer_StartWaitable(int CounterID, int timeslice);
// старт счетчика типа "таймер ожидания"
// Параметры:
//    <CounterID> - идентификатор счетчика (в случае отсутствия, счетчик добавляется)
//    <timeslice> - периода ожидания (секунд)
// Возврат:
//    true  - старт произведен
//    false - нет свободных счетчиков
//
bool timer_StartStopwatch(int CounterID);
// старт счетчика типа "секундомер"
// Параметры:
//    <CounterID> - идентификатор счетчика (в случае отсутствия, счетчик добавляется)
// Возврат:
//    true  - старт произведен
//    false - нет свободных счетчиков
//
int timer_GetCounter(int CounterID);
// запрос показаний счетчика с идентификатором <CounterID>
// Возврат:
//    для счетчика типа "секундомер" - количество секунд, прошедших от начала старта
//    для счетчика типа "таймер ожидания" - количество секунд, оставшихся до окончания периода ожидания
// Примечание:
//    в случае отсутствия счетчика с идентификатором <CounterID> возвращается -1
//
int timer_GetType(int CounterID);
// запрос типа счетчика с идентификатором <CounterID>
// Параметры:
//    <CounterID> - идентификатор счетчика
// Возврат:
//     1 - счетчик типа "секундомер"
//    -1 - счетчик типа "таймер ожидания"
//     0 - счетчик с заданным идентификатором не обнаружен
//
int timer_GetCounterIDbyPOS(int CounterPOS);
// запрос идентификатора счетчика по его позиции среди задействованных
// Параметры:
//    <CounterPOS>   - номер позиции счетчика среди задействованных
// Возврат:
//    идентификатор счетчика или "0", если задана несуществующая позиция
// Примечание:
//    <CounterPOS> может принимать значения от 0 до количества задействованных счетчиков,
//    возвращаемого функцией timer_NumberUsed(), в противном случае возвращается 0
//
#import
//+------------------------------------------------------------------+