#ifndef _S_SCD_H
#define _S_SCD_H
#include <sys/cdefs.h>
#define kSCDData CFSTR("data")
#define kSCDInstance CFSTR("instance")
#define kSCDWatchers CFSTR("watchers")
#define kSCDWatcherRefs CFSTR("watcherRefs")
#define kSCDSession CFSTR("session")
#define kSCDName CFSTR("name")
#define kSCDChangedKeys CFSTR("changedKeys")
#define kSCDRegexKeys CFSTR("regexKeys")
#define kSCDRegexData CFSTR("regexData")
#define kSCDSessionKeys CFSTR("sessionKeys")
extern int storeLocked;
extern CFMutableDictionaryRef storeData;
extern CFMutableDictionaryRef sessionData;
extern CFMutableSetRef changedKeys;
extern CFMutableSetRef deferredRemovals;
extern CFMutableSetRef removedSessionKeys;
extern CFMutableSetRef needsNotification;
extern CFMutableDictionaryRef storeData_s;
extern CFMutableSetRef changedKeys_s;
extern CFMutableSetRef deferredRemovals_s;
extern CFMutableSetRef removedSessionKeys_s;
typedef struct {
SCDynamicStorePrivateRef store;
regex_t *preg;
} addContext, *addContextRef;
typedef struct {
SCDynamicStorePrivateRef store;
regex_t *preg;
} removeContext, *removeContextRef;
__BEGIN_DECLS
int
__SCDynamicStoreOpen (SCDynamicStoreRef *store,
CFStringRef name);
int
__SCDynamicStoreClose (SCDynamicStoreRef *store);
int
__SCDynamicStoreLock (SCDynamicStoreRef store,
Boolean recursive);
int
__SCDynamicStoreUnlock (SCDynamicStoreRef store,
Boolean recursive);
int
__SCDynamicStoreCopyKeyList (SCDynamicStoreRef store,
CFStringRef prefix,
Boolean isRegex,
CFArrayRef *subKeys);
int
__SCDynamicStoreAddValue (SCDynamicStoreRef store,
CFStringRef key,
CFPropertyListRef value);
int
__SCDynamicStoreAddTemporaryValue (SCDynamicStoreRef store,
CFStringRef key,
CFPropertyListRef value);
int
__SCDynamicStoreCopyValue (SCDynamicStoreRef store,
CFStringRef key,
CFPropertyListRef *value);
int
__SCDynamicStoreSetValue (SCDynamicStoreRef store,
CFStringRef key,
CFPropertyListRef value);
int
__SCDynamicStoreRemoveValue (SCDynamicStoreRef store,
CFStringRef key);
int
__SCDynamicStoreTouchValue (SCDynamicStoreRef store,
CFStringRef key);
int
__SCDynamicStoreNotifyValue (SCDynamicStoreRef store,
CFStringRef key);
int
__SCDynamicStoreSnapshot (SCDynamicStoreRef store);
int
__SCDynamicStoreAddWatchedKey (SCDynamicStoreRef store,
CFStringRef key,
Boolean isRegex);
int
__SCDynamicStoreRemoveWatchedKey (SCDynamicStoreRef store,
CFStringRef key,
Boolean isRegex);
int
__SCDynamicStoreCopyNotifiedKeys (SCDynamicStoreRef store,
CFArrayRef *notifierKeys);
int
__SCDynamicStoreNotifyMachPort (SCDynamicStoreRef store,
mach_msg_id_t msgid,
mach_port_t *port);
int
__SCDynamicStoreNotifyFileDescriptor (SCDynamicStoreRef store,
int32_t identifier,
int *fd);
int
__SCDynamicStoreNotifySignal (SCDynamicStoreRef store,
pid_t pid,
int sig);
int
__SCDynamicStoreNotifyCancel (SCDynamicStoreRef store);
void
_swapLockedStoreData ();
void
_addWatcher (CFNumberRef sessionNum,
CFStringRef watchedKey);
void
_addRegexWatcherByKey (const void *key,
void *val,
void *context);
void
_addRegexWatchersBySession (const void *key,
void *val,
void *context);
void
_removeWatcher (CFNumberRef sessionNum,
CFStringRef watchedKey);
void
_removeRegexWatcherByKey (const void *key,
void *val,
void *context);
void
_removeRegexWatchersBySession (const void *key,
void *val,
void *context);
__END_DECLS
#endif