Timers

Timers — отслеживание истёкшего времени.

Краткое описание

#include <glib.h> GTimer; GTimer* g_timer_new (void); void g_timer_start (GTimer *timer); void g_timer_stop (GTimer *timer); void g_timer_continue (GTimer *timer); gdouble g_timer_elapsed (GTimer *timer, gulong *microseconds); void g_timer_reset (GTimer *timer); void g_timer_destroy (GTimer *timer);

Описание

GTimer записывает начальное время и подсчитывает микросекунды прошедшие с этого времени. Это выполняется по разному на разных платформах и может быть сложно получить правильное соответсвие, поэтому GTimer обеспечивает переносимый/удобный интерфейс.

Детали

GTimer

typedef struct _GTimer GTimer;

Непрозрачный тип данных который записывает начальное время.


g_timer_new ()

GTimer* g_timer_new (void);

Создаёт новый таймер и начинает отсчёт (то есть g_timer_start() не явно вызывается для вас).

Возвращает : новая структура GTimer.

g_timer_start ()

void g_timer_start (GTimer *timer);

Отмечает начальное время, так, чтобы следующие вызовы g_timer_elapsed() сообщали время прошедшее с момента вызова g_timer_start(). g_timer_new() автоматически отмечает начальное время, поэтому нет необходимости вызывать g_timer_start() сразу после создания таймера.

timer : GTimer.

g_timer_stop ()

void g_timer_stop (GTimer *timer);

Отмечает конечное время, поэтому вызовы g_timer_elapsed() будут возвращать разницу между конечным и начальным временем.

timer : GTimer.

g_timer_continue ()

void g_timer_continue (GTimer *timer);

Возобнавляет работу таймера который был предварительно остановлен с помощью g_timer_stop(). g_timer_stop() должна быть вызвана перед использованием этой функции.

timer : GTimer.

Начиная с версии 2.4


g_timer_elapsed ()

gdouble g_timer_elapsed (GTimer *timer, gulong *microseconds);

Если timer был запущен но не остановлен, получает время так как таймер был запущен. Если timer был остановлен, получает прошедшее время между между временем начала и временем остановки. Возвращаемое значение является количеством прошедших секунд, включая любую дробную часть. Параметр microseconds бесполезен.

timer : GTimer.
microseconds : расположение для возвращаемой дробной части прошедших секунд, в микросекундах (то есть общее количество прошедших микросекунд, по модулю 1000000), или NULL
Возвращает : прошедшие секунды в виде значения с плавающей точкой, включая любую дробную часть.

g_timer_reset ()

void g_timer_reset (GTimer *timer);

Эта функция бесполезна; достаточно вызвать g_timer_start() для уже запущенного таймера для сброса начального времени, поэтому g_timer_reset() нет смысла использовать.

timer : GTimer.

g_timer_destroy ()

void g_timer_destroy (GTimer *timer);

Уничтожает таймер, освобождает связанные с ним ресурсы.

timer : GTimer для уничтожения.