]> git.saurik.com Git - apple/configd.git/blobdiff - SystemConfiguration.fproj/SCPreferencesInternal.h
configd-42.tar.gz
[apple/configd.git] / SystemConfiguration.fproj / SCPreferencesInternal.h
diff --git a/SystemConfiguration.fproj/SCPreferencesInternal.h b/SystemConfiguration.fproj/SCPreferencesInternal.h
new file mode 100644 (file)
index 0000000..82e3aa3
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ *
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License").  You may not use this file except in compliance with the
+ * License.  Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ *
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef _SCPREFERENCESINTERNAL_H
+#define _SCPREFERENCESINTERNAL_H
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <CoreFoundation/CoreFoundation.h>
+#include <CoreFoundation/CFRuntime.h>
+#include <SystemConfiguration/SCPreferences.h>
+#include <SystemConfiguration/SCDynamicStore.h>
+
+
+#define        PREFS_DEFAULT_DIR       CFSTR("/var/db/SystemConfiguration")
+#define        PREFS_DEFAULT_CONFIG    CFSTR("preferences.xml")
+
+#define        PREFS_DEFAULT_USER_DIR  CFSTR("Library/Preferences")
+
+
+/* Define the per-preference-handle structure */
+typedef struct {
+
+       /* base CFType information */
+       CFRuntimeBase           cfBase;
+
+       /* session name */
+       CFStringRef             name;
+
+       /* preferences ID */
+       CFStringRef             prefsID;
+
+       /* per-user preference info */
+       Boolean                 perUser;
+       CFStringRef             user;
+
+       /* configuration file path */
+       char                    *path;
+
+       /* configuration file signature */
+       CFDataRef               signature;
+
+       /* configd session */
+       SCDynamicStoreRef       session;
+
+       /* configd session keys */
+       CFStringRef             sessionKeyLock;
+       CFStringRef             sessionKeyCommit;
+       CFStringRef             sessionKeyApply;
+
+       /* preferences */
+       CFMutableDictionaryRef  prefs;
+
+       /* flags */
+       Boolean                 accessed;
+       Boolean                 changed;
+       Boolean                 locked;
+       Boolean                 isRoot;
+
+} SCPreferencesPrivate, *SCPreferencesPrivateRef;
+
+
+/* Define signature data */
+typedef struct {
+       dev_t                   st_dev;         /* inode's device */
+       ino_t                   st_ino;         /* inode's number */
+       struct  timespec        st_mtimespec;   /* time of last data modification */
+       off_t                   st_size;        /* file size, in bytes */
+} SCPSignatureData, *SCPSignatureDataRef;
+
+
+__BEGIN_DECLS
+
+SCPreferencesRef
+__SCPreferencesCreate                  (CFAllocatorRef         allocator,
+                                        CFStringRef            name,
+                                        CFStringRef            prefsID,
+                                        Boolean                perUser,
+                                        CFStringRef            user);
+
+CFDataRef
+__SCPSignatureFromStatbuf              (const struct stat      *statBuf);
+
+char *
+__SCPreferencesPath                    (CFAllocatorRef         allocator,
+                                        CFStringRef            prefsID,
+                                        Boolean                perUser,
+                                        CFStringRef            user);
+
+CFStringRef
+_SCPNotificationKey                    (CFAllocatorRef         allocator,
+                                        CFStringRef            prefsID,
+                                        Boolean                perUser,
+                                        CFStringRef            user,
+                                        int                    keyType);
+
+__END_DECLS
+
+#endif /* _SCPREFERENCESINTERNAL_H */