SCDynamicStoreInternal.h [plain text]
#ifndef _SCDYNAMICSTOREINTERNAL_H
#define _SCDYNAMICSTOREINTERNAL_H
#include <Availability.h>
#include <TargetConditionals.h>
#include <sys/cdefs.h>
#if !TARGET_OS_IPHONE
#include <dispatch/dispatch.h>
#endif // !TARGET_OS_IPHONE
#include <sys/types.h>
#include <mach/mach.h>
#include <pthread.h>
#include <regex.h>
#include <CoreFoundation/CoreFoundation.h>
#include <CoreFoundation/CFRuntime.h>
#include <SystemConfiguration/SCDynamicStore.h>
typedef enum {
NotifierNotRegistered = 0,
Using_NotifierWait,
Using_NotifierInformViaCallback,
Using_NotifierInformViaMachPort,
Using_NotifierInformViaFD,
Using_NotifierInformViaSignal,
Using_NotifierInformViaRunLoop,
Using_NotifierInformViaDispatch
} __SCDynamicStoreNotificationStatus;
typedef struct {
CFRuntimeBase cfBase;
mach_port_t server;
Boolean locked;
Boolean useSessionKeys;
__SCDynamicStoreNotificationStatus notifyStatus;
CFIndex rlsRefs;
CFRunLoopSourceRef rls;
SCDynamicStoreCallBack rlsFunction;
SCDynamicStoreContext rlsContext;
SCDynamicStoreCallBack_v1 callbackFunction;
void *callbackArgument;
CFMachPortRef callbackPort;
CFRunLoopSourceRef callbackRLS;
#if !TARGET_OS_IPHONE
dispatch_queue_t dispatchQueue;
dispatch_source_t callbackSource;
dispatch_queue_t callbackQueue;
#endif // !TARGET_OS_IPHONE
CFMutableSetRef keys;
CFMutableSetRef patterns;
mach_port_t notifyPort;
mach_msg_id_t notifyPortIdentifier;
int notifyFile;
int notifyFileIdentifier;
int notifySignal;
task_t notifySignalTask;
} SCDynamicStorePrivate, *SCDynamicStorePrivateRef;
__BEGIN_DECLS
SCDynamicStorePrivateRef
__SCDynamicStoreCreatePrivate (CFAllocatorRef allocator,
const CFStringRef name,
SCDynamicStoreCallBack callout,
SCDynamicStoreContext *context);
__END_DECLS
#endif