1 ! Copyright (C) 2008, 2010 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax calendar.unix core-foundation
4 core-foundation.time locals ;
5 IN: core-foundation.timers
7 TYPEDEF: void* CFRunLoopTimerRef
9 CALLBACK: void CFRunLoopTimerCallBack (
10 CFRunLoopTimerRef timer,
14 TYPEDEF: void* CFRunLoopTimerContext
16 FUNCTION: CFRunLoopTimerRef CFRunLoopTimerCreate (
17 CFAllocatorRef allocator,
18 CFAbsoluteTime fireDate,
19 CFTimeInterval interval,
22 CFRunLoopTimerCallBack callout,
23 CFRunLoopTimerContext* context
26 :: <CFTimer> ( interval callback -- timer )
27 f system-micros >CFAbsoluteTime interval 0 0 callback f
28 CFRunLoopTimerCreate ;
30 FUNCTION: void CFRunLoopTimerInvalidate (
31 CFRunLoopTimerRef timer
34 FUNCTION: Boolean CFRunLoopTimerIsValid (
35 CFRunLoopTimerRef timer
38 FUNCTION: void CFRunLoopTimerSetNextFireDate (
39 CFRunLoopTimerRef timer,
40 CFAbsoluteTime fireDate
43 FUNCTION: Boolean CFRunLoopTimerDoesRepeat (
44 CFRunLoopTimerRef timer
47 FUNCTION: CFTimeInterval CFRunLoopTimerGetInterval (
48 CFRunLoopTimerRef timer
51 FUNCTION: CFAbsoluteTime CFRunLoopTimerGetNextFireDate (
52 CFRunLoopTimerRef timer