]> git.saurik.com Git - apple/cf.git/blob - CFBundlePriv.h
CF-1153.18.tar.gz
[apple/cf.git] / CFBundlePriv.h
1 /*
2 * Copyright (c) 2015 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24 /* CFBundlePriv.h
25 Copyright (c) 1999-2014, Apple Inc. All rights reserved.
26 */
27
28 #if !defined(__COREFOUNDATION_CFBUNDLEPRIV__)
29 #define __COREFOUNDATION_CFBUNDLEPRIV__ 1
30
31 #include <CoreFoundation/CFBase.h>
32 #include <CoreFoundation/CFArray.h>
33 #include <CoreFoundation/CFBundle.h>
34 #include <CoreFoundation/CFDictionary.h>
35 #include <CoreFoundation/CFString.h>
36 #include <CoreFoundation/CFURL.h>
37
38 CF_EXTERN_C_BEGIN
39
40 /* Finder stuff */
41 CF_EXPORT
42 const CFStringRef _kCFBundlePackageTypeKey;
43 CF_EXPORT
44 const CFStringRef _kCFBundleSignatureKey;
45 CF_EXPORT
46 const CFStringRef _kCFBundleIconFileKey;
47 CF_EXPORT
48 const CFStringRef _kCFBundleDocumentTypesKey;
49 CF_EXPORT
50 const CFStringRef _kCFBundleURLTypesKey;
51
52 /* Localizable Finder stuff */
53 CF_EXPORT
54 const CFStringRef _kCFBundleDisplayNameKey;
55 CF_EXPORT
56 const CFStringRef _kCFBundleShortVersionStringKey;
57 CF_EXPORT
58 const CFStringRef _kCFBundleGetInfoStringKey;
59 CF_EXPORT
60 const CFStringRef _kCFBundleGetInfoHTMLKey;
61
62 /* Sub-keys for CFBundleDocumentTypes dictionaries */
63 CF_EXPORT
64 const CFStringRef _kCFBundleTypeNameKey;
65 CF_EXPORT
66 const CFStringRef _kCFBundleTypeRoleKey;
67 CF_EXPORT
68 const CFStringRef _kCFBundleTypeIconFileKey;
69 CF_EXPORT
70 const CFStringRef _kCFBundleTypeOSTypesKey;
71 CF_EXPORT
72 const CFStringRef _kCFBundleTypeExtensionsKey;
73 CF_EXPORT
74 const CFStringRef _kCFBundleTypeMIMETypesKey;
75
76 /* Sub-keys for CFBundleURLTypes dictionaries */
77 CF_EXPORT
78 const CFStringRef _kCFBundleURLNameKey;
79 CF_EXPORT
80 const CFStringRef _kCFBundleURLIconFileKey;
81 CF_EXPORT
82 const CFStringRef _kCFBundleURLSchemesKey;
83
84 /* Compatibility key names */
85 CF_EXPORT
86 const CFStringRef _kCFBundleOldExecutableKey;
87 CF_EXPORT
88 const CFStringRef _kCFBundleOldInfoDictionaryVersionKey;
89 CF_EXPORT
90 const CFStringRef _kCFBundleOldNameKey;
91 CF_EXPORT
92 const CFStringRef _kCFBundleOldIconFileKey;
93 CF_EXPORT
94 const CFStringRef _kCFBundleOldDocumentTypesKey;
95 CF_EXPORT
96 const CFStringRef _kCFBundleOldShortVersionStringKey;
97
98 /* Compatibility CFBundleDocumentTypes key names */
99 CF_EXPORT
100 const CFStringRef _kCFBundleOldTypeNameKey;
101 CF_EXPORT
102 const CFStringRef _kCFBundleOldTypeRoleKey;
103 CF_EXPORT
104 const CFStringRef _kCFBundleOldTypeIconFileKey;
105 CF_EXPORT
106 const CFStringRef _kCFBundleOldTypeExtensions1Key;
107 CF_EXPORT
108 const CFStringRef _kCFBundleOldTypeExtensions2Key;
109 CF_EXPORT
110 const CFStringRef _kCFBundleOldTypeOSTypesKey;
111
112 /* For platform specification */
113 CF_EXPORT
114 const CFStringRef _kCFBundleSupportedPlatformsKey;
115
116 /* For Code Signing */
117 CF_EXPORT
118 const CFStringRef _kCFBundleResourceSpecificationKey;
119
120
121 /* Functions for examining directories that may "look like" bundles */
122
123 CF_EXPORT
124 CFURLRef _CFBundleCopyBundleURLForExecutableURL(CFURLRef url);
125
126 CF_EXPORT
127 Boolean _CFBundleURLLooksLikeBundle(CFURLRef url);
128
129 CF_EXPORT
130 CFBundleRef _CFBundleCreateIfLooksLikeBundle(CFAllocatorRef allocator, CFURLRef url);
131
132 CF_EXPORT
133 CFBundleRef _CFBundleGetMainBundleIfLooksLikeBundle(void);
134
135 CF_EXPORT
136 Boolean _CFBundleMainBundleInfoDictionaryComesFromResourceFork(void);
137
138 CF_EXPORT
139 CFBundleRef _CFBundleCreateWithExecutableURLIfLooksLikeBundle(CFAllocatorRef allocator, CFURLRef url);
140
141 CF_EXPORT
142 CFURLRef _CFBundleCopyMainBundleExecutableURL(Boolean *looksLikeBundle);
143
144 CF_EXPORT
145 CFBundleRef _CFBundleGetExistingBundleWithBundleURL(CFURLRef bundleURL);
146
147 // This function is obsolete.
148 CF_EXPORT
149 CFArrayRef _CFBundleGetSupportedPlatforms(CFBundleRef bundle);
150
151 CF_EXPORT
152 CFStringRef _CFBundleGetCurrentPlatform(void);
153
154
155 /* For Code Signing */
156
157 // This function is obsolete. Use CFBundleCreate instead.
158 CF_EXPORT
159 CFBundleRef _CFBundleCreateIfMightBeBundle(CFAllocatorRef allocator, CFURLRef url) CF_DEPRECATED(10_6, 10_10, 2_0, 8_0);
160
161 // This function is for code signing only. Do not use this function.
162 CF_EXPORT
163 CFBundleRef _CFBundleCreateWithExecutableURLIfMightBeBundle(CFAllocatorRef allocator, CFURLRef url);
164
165
166 /* Functions for examining the structure of a bundle */
167
168 CF_EXPORT
169 CFURLRef _CFBundleCopyResourceForkURL(CFBundleRef bundle) CF_AVAILABLE_MAC(10_0);
170
171 CF_EXPORT
172 CFURLRef _CFBundleCopyInfoPlistURL(CFBundleRef bundle);
173
174
175 /* Functions for working without a bundle instance */
176
177 CF_EXPORT
178 CFURLRef _CFBundleCopyExecutableURLInDirectory(CFURLRef url);
179
180 CF_EXPORT
181 CFURLRef _CFBundleCopyOtherExecutableURLInDirectory(CFURLRef url);
182
183
184 /* Functions for dealing with localizations */
185
186 CF_EXPORT
187 void _CFBundleGetLanguageAndRegionCodes(SInt32 *languageCode, SInt32 *regionCode);
188 // may return -1 for either one if no code can be found
189
190 CF_EXPORT
191 Boolean CFBundleGetLocalizationInfoForLocalization(CFStringRef localizationName, SInt32 *languageCode, SInt32 *regionCode, SInt32 *scriptCode, CFStringEncoding *stringEncoding);
192 /* Gets the appropriate language and region codes, and the default */
193 /* script code and encoding, for the localization specified. */
194 /* Pass NULL for the localizationName to get these values for the */
195 /* single most preferred localization in the current context. */
196 /* May give -1 if there is no language or region code for a particular */
197 /* localization. Returns false if CFBundle has no information about */
198 /* the given localization. */
199
200 CF_EXPORT
201 CFStringRef CFBundleCopyLocalizationForLocalizationInfo(SInt32 languageCode, SInt32 regionCode, SInt32 scriptCode, CFStringEncoding stringEncoding);
202 /* Returns the default localization for the combination of codes */
203 /* specified. Pass in -1 for language, region code, or script code, or */
204 /* 0xFFFF for stringEncoding, if you do not wish to specify one of these. */
205
206 // Get a localized string for a specific localization (including processing as strings dict file). This skips the usual cache for localized strings.
207 CF_EXPORT CFStringRef CFBundleCopyLocalizedStringForLocalization(CFBundleRef bundle, CFStringRef key, CFStringRef value, CFStringRef tableName, CFStringRef localizationName) CF_AVAILABLE(10_10, 8_0);
208
209 CF_EXPORT
210 void _CFBundleSetDefaultLocalization(CFStringRef localizationName);
211
212
213 /* Functions for dealing specifically with CFM executables */
214
215 CF_EXPORT
216 void *_CFBundleGetCFMFunctionPointerForName(CFBundleRef bundle, CFStringRef funcName);
217
218 CF_EXPORT
219 void _CFBundleGetCFMFunctionPointersForNames(CFBundleRef bundle, CFArrayRef functionNames, void *ftbl[]);
220
221 CF_EXPORT
222 void _CFBundleSetCFMConnectionID(CFBundleRef bundle, void *connectionID);
223
224
225 /* Miscellaneous functions */
226
227 CF_EXPORT
228 CFStringRef _CFBundleCopyFileTypeForFileURL(CFURLRef url);
229
230 CF_EXPORT
231 CFStringRef _CFBundleCopyFileTypeForFileData(CFDataRef data);
232
233 CF_EXPORT
234 Boolean _CFBundleGetHasChanged(CFBundleRef bundle);
235
236 CF_EXPORT
237 void _CFBundleFlushCaches(void) CF_DEPRECATED(10_0, 10_8, 2_0, 6_0);
238
239 CF_EXPORT
240 void _CFBundleFlushCachesForURL(CFURLRef url) CF_DEPRECATED(10_0, 10_8, 2_0, 6_0);
241
242 CF_EXPORT
243 void _CFBundleFlushBundleCaches(CFBundleRef bundle); // The previous two functions flush cached resource paths; this one also flushes bundle-specific caches such as the info dictionary and strings files
244
245 CF_EXPORT
246 CFArrayRef _CFBundleCopyAllBundles(void); // Pending publication, the only known client of this is PowerBox. Email david_smith@apple.com before using this.
247
248 CF_EXPORT
249 void _CFBundleSetStringsFilesShared(CFBundleRef bundle, Boolean flag);
250
251 CF_EXPORT
252 Boolean _CFBundleGetStringsFilesShared(CFBundleRef bundle);
253
254 CF_EXPORT
255 CFURLRef _CFBundleCopyFrameworkURLForExecutablePath(CFStringRef executablePath);
256
257 #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
258 #include <xpc/xpc.h>
259 CF_EXPORT
260 void _CFBundleSetupXPCBootstrap(xpc_object_t bootstrap) CF_AVAILABLE(10_10, 8_0);
261 #endif
262
263 /* Functions deprecated as SPI */
264
265 CF_EXPORT
266 CFDictionaryRef _CFBundleGetLocalInfoDictionary(CFBundleRef bundle); // deprecated in favor of CFBundleGetLocalInfoDictionary
267
268 CF_EXPORT
269 CFPropertyListRef _CFBundleGetValueForInfoKey(CFBundleRef bundle, CFStringRef key); // deprecated in favor of CFBundleGetValueForInfoDictionaryKey
270
271 CF_EXPORT
272 Boolean _CFBundleGetPackageInfoInDirectory(CFAllocatorRef alloc, CFURLRef url, UInt32 *packageType, UInt32 *packageCreator); // deprecated in favor of CFBundleGetPackageInfoInDirectory
273
274 CF_EXPORT
275 CFDictionaryRef _CFBundleCopyInfoDictionaryInResourceFork(CFURLRef url); // CFBundleCopyInfoDictionaryForURL is usually preferred; for the main bundle, however, no special call is necessary, since the info dictionary will automatically be available whether the app is bundled or not
276
277 CF_EXPORT
278 CFURLRef _CFBundleCopyPrivateFrameworksURL(CFBundleRef bundle); // deprecated in favor of CFBundleCopyPrivateFrameworksURL
279
280 CF_EXPORT
281 CFURLRef _CFBundleCopySharedFrameworksURL(CFBundleRef bundle); // deprecated in favor of CFBundleCopySharedFrameworksURL
282
283 CF_EXPORT
284 CFURLRef _CFBundleCopySharedSupportURL(CFBundleRef bundle); // deprecated in favor of CFBundleCopySharedSupportURL
285
286 CF_EXPORT
287 CFURLRef _CFBundleCopyBuiltInPlugInsURL(CFBundleRef bundle); // deprecated in favor of CFBundleCopyBuiltInPlugInsURL
288
289 CF_EXPORT
290 CFURLRef _CFBundleCopyResourceURLForLanguage(CFBundleRef bundle, CFStringRef resourceName, CFStringRef resourceType, CFStringRef subDirName, CFStringRef language); // deprecated in favor of CFBundleCopyResourceURLForLocalization
291
292 CF_EXPORT
293 CFArrayRef _CFBundleCopyResourceURLsOfTypeForLanguage(CFBundleRef bundle, CFStringRef resourceType, CFStringRef subDirName, CFStringRef language); // deprecated in favor of CFBundleCopyResourceURLsOfTypeForLocalization
294
295 CF_EXPORT
296 CFBundleRefNum _CFBundleOpenBundleResourceFork(CFBundleRef bundle); // deprecated in favor of CFBundleOpenBundleResourceMap
297
298 CF_EXPORT
299 void _CFBundleCloseBundleResourceFork(CFBundleRef bundle); // deprecated in favor of CFBundleCloseBundleResourceMap
300
301 CF_EXTERN_C_END
302
303 #endif /* ! __COREFOUNDATION_CFBUNDLEPRIV__ */
304