]> gitweb.factorcode.org Git - factor.git/blob - basis/core-foundation/run-loop/run-loop.factor
Merge branch 'master' into experimental (untested!)
[factor.git] / basis / core-foundation / run-loop / run-loop.factor
1 ! Copyright (C) 2008 Slava Pestov
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.syntax kernel namespaces core-foundation
4 core-foundation.strings core-foundation.file-descriptors
5 core-foundation.timers ;
6 IN: core-foundation.run-loop
7
8 : kCFRunLoopRunFinished 1 ; inline
9 : kCFRunLoopRunStopped 2 ; inline
10 : kCFRunLoopRunTimedOut 3 ; inline
11 : kCFRunLoopRunHandledSource 4 ; inline
12
13 TYPEDEF: void* CFRunLoopRef
14 TYPEDEF: void* CFRunLoopSourceRef
15
16 FUNCTION: CFRunLoopRef CFRunLoopGetMain ( ) ;
17 FUNCTION: CFRunLoopRef CFRunLoopGetCurrent ( ) ;
18
19 FUNCTION: SInt32 CFRunLoopRunInMode (
20    CFStringRef mode,
21    CFTimeInterval seconds,
22    Boolean returnAfterSourceHandled
23 ) ;
24
25 FUNCTION: CFRunLoopSourceRef CFFileDescriptorCreateRunLoopSource (
26     CFAllocatorRef allocator,
27     CFFileDescriptorRef f,
28     CFIndex order
29 ) ;
30
31 FUNCTION: void CFRunLoopAddSource (
32    CFRunLoopRef rl,
33    CFRunLoopSourceRef source,
34    CFStringRef mode
35 ) ;
36
37 FUNCTION: void CFRunLoopRemoveSource (
38    CFRunLoopRef rl,
39    CFRunLoopSourceRef source,
40    CFStringRef mode
41 ) ;
42
43 FUNCTION: void CFRunLoopAddTimer (
44    CFRunLoopRef rl,
45    CFRunLoopTimerRef timer,
46    CFStringRef mode
47 ) ;
48
49 FUNCTION: void CFRunLoopRemoveTimer (
50    CFRunLoopRef rl,
51    CFRunLoopTimerRef timer,
52    CFStringRef mode
53 ) ;
54
55 : CFRunLoopDefaultMode ( -- alien )
56     #! Ugly, but we don't have static NSStrings
57     \ CFRunLoopDefaultMode get-global dup expired? [
58         drop
59         "kCFRunLoopDefaultMode" <CFString>
60         dup \ CFRunLoopDefaultMode set-global
61     ] when ;