-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCFPropertyList.h
185 lines (152 loc) · 4.66 KB
/
CFPropertyList.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/*
File: CFPropertyList.h
Contains: CoreFoundation PropertyList
Version: Technology: Mac OS X
Release: Universal Interfaces 3.4
Copyright: © 1999-2001 by Apple Computer, Inc., all rights reserved
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
#ifndef __CFPROPERTYLIST__
#define __CFPROPERTYLIST__
#ifndef __CFBASE__
#include <CFBase.h>
#endif
#ifndef __CFDATA__
#include <CFData.h>
#endif
#ifndef __CFSTRING__
#include <CFString.h>
#endif
#if PRAGMA_ONCE
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT
#pragma import on
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
#endif
#if PRAGMA_ENUM_ALWAYSINT
#if defined(__fourbyteints__) && !__fourbyteints__
#define __CFPROPERTYLIST__RESTORE_TWOBYTEINTS
#pragma fourbyteints on
#endif
#pragma enumsalwaysint on
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=int
#elif PRAGMA_ENUM_PACK
#if __option(pack_enums)
#define __CFPROPERTYLIST__RESTORE_PACKED_ENUMS
#pragma options(!pack_enums)
#endif
#endif
/*
Type to mean any instance of a property list type;
currently, CFString, CFData, CFNumber, CFBoolean, CFDate,
CFArray, and CFDictionary.
*/
typedef CFTypeRef CFPropertyListRef;
enum CFPropertyListMutabilityOptions {
kCFPropertyListImmutable = 0,
kCFPropertyListMutableContainers = 1,
kCFPropertyListMutableContainersAndLeaves = 2
};
typedef enum CFPropertyListMutabilityOptions CFPropertyListMutabilityOptions;
/*
Creates a property list object from its XML description; xmlData should
be the raw bytes of that description, possibly the contents of an XML
file. Returns NULL if the data cannot be parsed; if the parse fails
and errorString is non-NULL, a human-readable description of the failure
is returned in errorString. It is the caller's responsibility to release
either the returned object or the error string, whichever is applicable.
*/
/*
* CFPropertyListCreateFromXMLData()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( CFPropertyListRef )
CFPropertyListCreateFromXMLData(
CFAllocatorRef allocator,
CFDataRef xmlData,
CFOptionFlags mutabilityOption,
CFStringRef * errorString);
/*
Returns the XML description of the given object; propertyList must
be one of the supported property list types, and (for composite types
like CFArray and CFDictionary) must not contain any elements that
are not themselves of a property list type. If a non-property list
type is encountered, NULL is returned. The returned data is
appropriate for writing out to an XML file. Note that a data, not a
string, is returned because the bytes contain in them a description
of the string encoding used.
*/
/*
* CFPropertyListCreateXMLData()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( CFDataRef )
CFPropertyListCreateXMLData(
CFAllocatorRef allocator,
CFPropertyListRef propertyList);
/*
Recursively creates a copy of the given property list (so nested arrays
and dictionaries are copied as well as the top-most container). The
resulting property list has the mutability characteristics determined
by mutabilityOption.
*/
/*
* CFPropertyListCreateDeepCopy()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 or later
*/
EXTERN_API_C( CFPropertyListRef )
CFPropertyListCreateDeepCopy(
CFAllocatorRef allocator,
CFPropertyListRef propertyList,
CFOptionFlags mutabilityOption);
#if PRAGMA_ENUM_ALWAYSINT
#pragma enumsalwaysint reset
#ifdef __CFPROPERTYLIST__RESTORE_TWOBYTEINTS
#pragma fourbyteints off
#endif
#elif PRAGMA_ENUM_OPTIONS
#pragma option enum=reset
#elif defined(__CFPROPERTYLIST__RESTORE_PACKED_ENUMS)
#pragma options(pack_enums)
#endif
#if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
#endif
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __CFPROPERTYLIST__ */