27#ifndef __COREFOUNDATION_CFRUNLOOP_H__
28#define __COREFOUNDATION_CFRUNLOOP_H__
30#include <CoreFoundation/CFBase.h>
31#include <CoreFoundation/CFArray.h>
32#include <CoreFoundation/CFDate.h>
33#include <CoreFoundation/CFError.h>
34#include <GNUstepBase/GSBlocks.h>
38typedef struct __CFRunLoop *CFRunLoopRef;
40typedef struct __CFRunLoopSource *CFRunLoopSourceRef;
42typedef struct __CFRunLoopObserver *CFRunLoopObserverRef;
44typedef struct __CFRunLoopTimer *CFRunLoopTimerRef;
51 kCFRunLoopRunFinished = 1,
52 kCFRunLoopRunStopped = 2,
53 kCFRunLoopRunTimedOut = 3,
54 kCFRunLoopRunHandledSource = 4
57CF_EXPORT
const CFStringRef kCFRunLoopCommonModes;
58CF_EXPORT
const CFStringRef kCFRunLoopDefaultMode;
70CF_EXPORT CFTypeID CFRunLoopGetTypeID (
void);
76CF_EXPORT CFRunLoopRef CFRunLoopGetCurrent (
void);
78CF_EXPORT CFRunLoopRef CFRunLoopGetMain (
void);
84CF_EXPORT
void CFRunLoopRun (
void);
87CFRunLoopRunInMode (CFStringRef mode, CFTimeInterval seconds,
88 Boolean returnAfterSourceHandled);
90CF_EXPORT
void CFRunLoopWakeUp (CFRunLoopRef rl);
92CF_EXPORT
void CFRunLoopStop (CFRunLoopRef rl);
94CF_EXPORT Boolean CFRunLoopIsWaiting (CFRunLoopRef rl);
100CF_EXPORT
void CFRunLoopAddCommonMode (CFRunLoopRef rl, CFStringRef mode);
102CF_EXPORT
CFArrayRef CFRunLoopCopyAllModes (CFRunLoopRef rl);
104CF_EXPORT CFStringRef CFRunLoopCopyCurrentMode (CFRunLoopRef rl);
110#if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
111DEFINE_BLOCK_TYPE_NO_ARGS (PerformBlockType,
void);
114CFRunLoopPerformBlock (CFRunLoopRef rl, CFTypeRef mode, PerformBlockType block);
122_CFRunLoopHasAnyValidSources (CFRunLoopRef rl, CFStringRef mode);
129typedef void (*CFRunLoopCancelCallBack) (
void *info, CFRunLoopRef rl,
131typedef Boolean (*CFRunLoopEqualCallBack) (
const void *info1,
133typedef CFHashCode (*CFRunLoopHashCallBack) (
const void *info);
135typedef mach_port_t (*CFRunLoopGetPortCallBack) (
void *info);
136typedef void *(*CFRunLoopMachPerformCallBack) (
void *msg,
CFIndex size,
140typedef void (*CFRunLoopPerformCallBack) (
void *info);
141typedef void (*CFRunLoopScheduleCallBack) (
void *info, CFRunLoopRef rl,
149 CFAllocatorRetainCallBack retain;
150 CFAllocatorReleaseCallBack release;
151 CFAllocatorCopyDescriptionCallBack copyDescription;
152 CFRunLoopEqualCallBack equal;
153 CFRunLoopHashCallBack hash;
154 CFRunLoopScheduleCallBack schedule;
155 CFRunLoopCancelCallBack cancel;
156 CFRunLoopPerformCallBack perform;
164 CFAllocatorRetainCallBack retain;
165 CFAllocatorReleaseCallBack release;
166 CFAllocatorCopyDescriptionCallBack copyDescription;
167 CFRunLoopEqualCallBack equal;
168 CFRunLoopHashCallBack hash;
169 CFRunLoopGetPortCallBack getPort;
170 CFRunLoopMachPerformCallBack perform;
177CFRunLoopAddSource (CFRunLoopRef rl, CFRunLoopSourceRef source,
181CFRunLoopContainsSource (CFRunLoopRef rl, CFRunLoopSourceRef source,
185CFRunLoopRemoveSource (CFRunLoopRef rl, CFRunLoopSourceRef source,
188CF_EXPORT CFRunLoopSourceRef
193CFRunLoopSourceGetContext (CFRunLoopSourceRef source,
196CF_EXPORT
CFIndex CFRunLoopSourceGetOrder (CFRunLoopSourceRef source);
198CF_EXPORT
void CFRunLoopSourceInvalidate (CFRunLoopSourceRef source);
200CF_EXPORT Boolean CFRunLoopSourceIsValid (CFRunLoopSourceRef source);
202CF_EXPORT
void CFRunLoopSourceSignal (CFRunLoopSourceRef source);
208CF_EXPORT CFTypeID CFRunLoopSourceGetTypeID (
void);
217 kCFRunLoopEntry = (1 << 0),
218 kCFRunLoopBeforeTimers = (1 << 1),
219 kCFRunLoopBeforeSources = (1 << 2),
220 kCFRunLoopBeforeWaiting = (1 << 5),
221 kCFRunLoopAfterWaiting = (1 << 6),
222 kCFRunLoopExit = (1 << 7),
223 kCFRunLoopAllActivities = 0x0FFFFFFFU
225typedef int CFRunLoopActivity;
227typedef void (*CFRunLoopObserverCallBack) (CFRunLoopObserverRef observer,
228 CFRunLoopActivity activity,
236 CFAllocatorRetainCallBack retain;
237 CFAllocatorReleaseCallBack release;
238 CFAllocatorCopyDescriptionCallBack copyDescription;
245CFRunLoopAddObserver (CFRunLoopRef rl, CFRunLoopObserverRef observer,
249CFRunLoopContainsObserver (CFRunLoopRef rl, CFRunLoopObserverRef observer,
253CFRunLoopRemoveObserver (CFRunLoopRef rl, CFRunLoopObserverRef observer,
256CF_EXPORT CFRunLoopObserverRef
258 Boolean repeats,
CFIndex order,
259 CFRunLoopObserverCallBack callback,
262CF_EXPORT Boolean CFRunLoopObserverDoesRepeat (CFRunLoopObserverRef observer);
265CFRunLoopObserverGetActivities (CFRunLoopObserverRef observer);
268CFRunLoopObserverGetContext (CFRunLoopObserverRef observer,
271CF_EXPORT
CFIndex CFRunLoopObserverGetOrder (CFRunLoopObserverRef observer);
273CF_EXPORT
void CFRunLoopObserverInvalidate (CFRunLoopObserverRef observer);
275CF_EXPORT Boolean CFRunLoopObserverIsValid (CFRunLoopObserverRef observer);
281CF_EXPORT CFTypeID CFRunLoopObserverGetTypeID (
void);
288typedef void (*CFRunLoopTimerCallBack) (CFRunLoopTimerRef timer,
void *info);
295 CFAllocatorRetainCallBack retain;
296 CFAllocatorReleaseCallBack release;
297 CFAllocatorCopyDescriptionCallBack copyDescription;
304CFRunLoopAddTimer (CFRunLoopRef rl, CFRunLoopTimerRef timer, CFStringRef mode);
306CF_EXPORT CFAbsoluteTime
307CFRunLoopGetNextTimerFireDate (CFRunLoopRef rl, CFStringRef mode);
310CFRunLoopRemoveTimer (CFRunLoopRef rl, CFRunLoopTimerRef timer,
314CFRunLoopContainsTimer (CFRunLoopRef rl, CFRunLoopTimerRef timer,
317CF_EXPORT CFRunLoopTimerRef
318CFRunLoopTimerCreate (
CFAllocatorRef alloc, CFAbsoluteTime fireDate,
320 CFIndex order, CFRunLoopTimerCallBack callback,
323CF_EXPORT Boolean CFRunLoopTimerDoesRepeat (CFRunLoopTimerRef timer);
326CFRunLoopTimerGetContext (CFRunLoopTimerRef timer,
329CF_EXPORT CFTimeInterval CFRunLoopTimerGetInterval (CFRunLoopTimerRef timer);
331CF_EXPORT CFAbsoluteTime
332CFRunLoopTimerGetNextFireDate (CFRunLoopTimerRef timer);
334CF_EXPORT
CFIndex CFRunLoopTimerGetOrder (CFRunLoopTimerRef timer);
336CF_EXPORT
void CFRunLoopTimerInvalidate (CFRunLoopTimerRef timer);
338CF_EXPORT Boolean CFRunLoopTimerIsValid (CFRunLoopTimerRef timer);
341CFRunLoopTimerSetNextFireDate (CFRunLoopTimerRef timer,
342 CFAbsoluteTime fireDate);
348CF_EXPORT CFTypeID CFRunLoopTimerGetTypeID (
void);
unsigned long CFOptionFlags
Definition CFBase.h:163
signed long CFIndex
Definition CFBase.h:165
unsigned long CFHashCode
Definition CFBase.h:159
const struct __CFAllocator * CFAllocatorRef
A reference to a CFAllocator object.
Definition CFBase.h:301
const struct __CFArray * CFArrayRef
Reference to an immutable array object.
Definition CFArray.h:37
Definition CFRunLoop.h:233
int mach_port_t
Definition CFRunLoop.h:64
Definition CFRunLoop.h:146
Definition CFRunLoop.h:161
Definition CFRunLoop.h:292