X-Git-Url: https://git.saurik.com/apple/cf.git/blobdiff_plain/47a9ab1f151d80a00a045f81937ddac81c51a463..bd5b749cf7786ae858ab372fc8f64179736c6515:/Base.subproj/CFPriv.h diff --git a/Base.subproj/CFPriv.h b/Base.subproj/CFPriv.h deleted file mode 100644 index 1df483f..0000000 --- a/Base.subproj/CFPriv.h +++ /dev/null @@ -1,293 +0,0 @@ -/* - * Copyright (c) 2005 Apple Computer, Inc. All rights reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The 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, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ -/* CFPriv.h - Copyright (c) 1998-2005, Apple, Inc. All rights reserved. -*/ - -/* - APPLE SPI: NOT TO BE USED OUTSIDE APPLE! -*/ - -#if !defined(__COREFOUNDATION_CFPRIV__) -#define __COREFOUNDATION_CFPRIV__ 1 - -#include -#include -#include -#include -#include -#include - - -#if defined(__MACH__) || defined(__WIN32__) -#include -#include -#include -#endif - -#if defined(__cplusplus) -extern "C" { -#endif - -CF_EXPORT intptr_t _CFDoOperation(intptr_t code, intptr_t subcode1, intptr_t subcode2); - -CF_EXPORT void _CFRuntimeSetCFMPresent(void *a); - -CF_EXPORT const char *_CFProcessPath(void); -CF_EXPORT const char **_CFGetProcessPath(void); -CF_EXPORT const char **_CFGetProgname(void); - - -#if defined(__MACH__) -CF_EXPORT CFRunLoopRef CFRunLoopGetMain(void); -CF_EXPORT SInt32 CFRunLoopRunSpecific(CFRunLoopRef rl, CFStringRef modeName, CFTimeInterval seconds, Boolean returnAfterSourceHandled); - -CF_EXPORT void _CFRunLoopSetCurrent(CFRunLoopRef rl); - -CF_EXPORT Boolean _CFRunLoopModeContainsMode(CFRunLoopRef rl, CFStringRef modeName, CFStringRef candidateContainedName); -CF_EXPORT void _CFRunLoopAddModeToMode(CFRunLoopRef rl, CFStringRef modeName, CFStringRef toModeName); -CF_EXPORT void _CFRunLoopRemoveModeFromMode(CFRunLoopRef rl, CFStringRef modeName, CFStringRef fromModeName); -CF_EXPORT void _CFRunLoopStopMode(CFRunLoopRef rl, CFStringRef modeName); - -CF_EXPORT CFIndex CFMachPortGetQueuedMessageCount(CFMachPortRef mp); - -CF_EXPORT CFPropertyListRef _CFURLCopyPropertyListRepresentation(CFURLRef url); -CF_EXPORT CFURLRef _CFURLCreateFromPropertyListRepresentation(CFAllocatorRef alloc, CFPropertyListRef pListRepresentation); -#endif /* __MACH__ */ - -CF_EXPORT void CFPreferencesFlushCaches(void); - -CF_EXPORT CFTimeInterval _CFTimeZoneGetDSTOffset(CFTimeZoneRef tz, CFAbsoluteTime at); -CF_EXPORT CFAbsoluteTime _CFTimeZoneGetNextDSTSwitch(CFTimeZoneRef tz, CFAbsoluteTime at); - -#if !defined(__WIN32__) -struct FSSpec; -CF_EXPORT -Boolean _CFGetFSSpecFromURL(CFAllocatorRef alloc, CFURLRef url, struct FSSpec *spec); - -CF_EXPORT -CFURLRef _CFCreateURLFromFSSpec(CFAllocatorRef alloc, const struct FSSpec *voidspec, Boolean isDirectory); -#endif - -#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED -typedef enum { - kCFURLComponentDecompositionNonHierarchical, - kCFURLComponentDecompositionRFC1808, /* use this for RFC 1738 decompositions as well */ - kCFURLComponentDecompositionRFC2396 -} CFURLComponentDecomposition; - -typedef struct { - CFStringRef scheme; - CFStringRef schemeSpecific; -} CFURLComponentsNonHierarchical; - -typedef struct { - CFStringRef scheme; - CFStringRef user; - CFStringRef password; - CFStringRef host; - CFIndex port; /* kCFNotFound means ignore/omit */ - CFArrayRef pathComponents; - CFStringRef parameterString; - CFStringRef query; - CFStringRef fragment; - CFURLRef baseURL; -} CFURLComponentsRFC1808; - -typedef struct { - CFStringRef scheme; - - /* if the registered name form of the net location is used, userinfo is NULL, port is kCFNotFound, and host is the entire registered name. */ - CFStringRef userinfo; - CFStringRef host; - CFIndex port; - - CFArrayRef pathComponents; - CFStringRef query; - CFStringRef fragment; - CFURLRef baseURL; -} CFURLComponentsRFC2396; - -/* Fills components and returns TRUE if the URL can be decomposed according to decompositionType; FALSE (leaving components unchanged) otherwise. components should be a pointer to the CFURLComponents struct defined above that matches decompositionStyle */ -CF_EXPORT -Boolean _CFURLCopyComponents(CFURLRef url, CFURLComponentDecomposition decompositionType, void *components); - -/* Creates and returns the URL described by components; components should point to the CFURLComponents struct defined above that matches decompositionType. */ -CF_EXPORT -CFURLRef _CFURLCreateFromComponents(CFAllocatorRef alloc, CFURLComponentDecomposition decompositionType, const void *components); -#define CFURLCopyComponents _CFURLCopyComponents -#define CFURLCreateFromComponents _CFURLCreateFromComponents -#endif - - -CF_EXPORT Boolean _CFStringGetFileSystemRepresentation(CFStringRef string, UInt8 *buffer, CFIndex maxBufLen); - -/* If this is publicized, we might need to create a GetBytesPtr type function as well. */ -CF_EXPORT CFStringRef _CFStringCreateWithBytesNoCopy(CFAllocatorRef alloc, const UInt8 *bytes, CFIndex numBytes, CFStringEncoding encoding, Boolean externalFormat, CFAllocatorRef contentsDeallocator); - -/* These return NULL on MacOS 8 */ -CF_EXPORT -CFStringRef CFGetUserName(void); - -CF_EXPORT -CFURLRef CFCopyHomeDirectoryURLForUser(CFStringRef uName); /* Pass NULL for the current user's home directory */ - -/* - CFCopySearchPathForDirectoriesInDomains returns the various - standard system directories where apps, resources, etc get - installed. Because queries can return multiple directories, - you get back a CFArray (which you should free when done) of - CFStrings. The directories are returned in search path order; - that is, the first place to look is returned first. This API - may return directories that do not exist yet. If NSUserDomain - is included in a query, then the results will contain "~" to - refer to the user's directory. Specify expandTilde to expand - this to the current user's home. Some calls might return no - directories! - ??? On MacOS 8 this function currently returns an empty array. -*/ -typedef enum { - kCFApplicationDirectory = 1, /* supported applications (Applications) */ - kCFDemoApplicationDirectory, /* unsupported applications, demonstration versions (Demos) */ - kCFDeveloperApplicationDirectory, /* developer applications (Developer/Applications) */ - kCFAdminApplicationDirectory, /* system and network administration applications (Administration) */ - kCFLibraryDirectory, /* various user-visible documentation, support, and configuration files, resources (Library) */ - kCFDeveloperDirectory, /* developer resources (Developer) */ - kCFUserDirectory, /* user home directories (Users) */ - kCFDocumentationDirectory, /* documentation (Documentation) */ - kCFDocumentDirectory, /* documents (Library/Documents) */ - kCFAllApplicationsDirectory = 100, /* all directories where applications can occur (ie Applications, Demos, Administration, Developer/Applications) */ - kCFAllLibrariesDirectory = 101 /* all directories where resources can occur (Library, Developer) */ -} CFSearchPathDirectory; - -typedef enum { - kCFUserDomainMask = 1, /* user's home directory --- place to install user's personal items (~) */ - kCFLocalDomainMask = 2, /* local to the current machine --- place to install items available to everyone on this machine (/Local) */ - kCFNetworkDomainMask = 4, /* publically available location in the local area network --- place to install items available on the network (/Network) */ - kCFSystemDomainMask = 8, /* provided by Apple, unmodifiable (/System) */ - kCFAllDomainsMask = 0x0ffff /* all domains: all of the above and more, future items */ -} CFSearchPathDomainMask; - -CF_EXPORT -CFArrayRef CFCopySearchPathForDirectoriesInDomains(CFSearchPathDirectory directory, CFSearchPathDomainMask domainMask, Boolean expandTilde); - -/* Obsolete keys */ -CF_EXPORT const CFStringRef kCFFileURLExists; -CF_EXPORT const CFStringRef kCFFileURLPOSIXMode; -CF_EXPORT const CFStringRef kCFFileURLSize; -CF_EXPORT const CFStringRef kCFFileURLDirectoryContents; -CF_EXPORT const CFStringRef kCFFileURLLastModificationTime; -CF_EXPORT const CFStringRef kCFHTTPURLStatusCode; -CF_EXPORT const CFStringRef kCFHTTPURLStatusLine; - - -/* System Version file access */ -CF_EXPORT CFStringRef CFCopySystemVersionString(void); // Human-readable string containing both marketing and build version, should be API'd -CF_EXPORT CFDictionaryRef _CFCopySystemVersionDictionary(void); -CF_EXPORT CFDictionaryRef _CFCopyServerVersionDictionary(void); -CF_EXPORT const CFStringRef _kCFSystemVersionProductNameKey; -CF_EXPORT const CFStringRef _kCFSystemVersionProductCopyrightKey; -CF_EXPORT const CFStringRef _kCFSystemVersionProductVersionKey; -CF_EXPORT const CFStringRef _kCFSystemVersionProductVersionExtraKey; -CF_EXPORT const CFStringRef _kCFSystemVersionProductUserVisibleVersionKey; // For loginwindow; see 2987512 -CF_EXPORT const CFStringRef _kCFSystemVersionBuildVersionKey; -CF_EXPORT const CFStringRef _kCFSystemVersionProductVersionStringKey; // Localized string for the string "Version" -CF_EXPORT const CFStringRef _kCFSystemVersionBuildStringKey; // Localized string for the string "Build" - -typedef enum { - kCFStringGramphemeCluster = 1, /* Unicode Grapheme Cluster (not different from kCFStringComposedCharacterCluster right now) */ - kCFStringComposedCharacterCluster = 2, /* Compose all non-base (including spacing marks) */ - kCFStringCursorMovementCluster = 3, /* Cluster suitable for cursor movements */ - kCFStringBackwardDeletionCluster = 4 /* Cluster suitable for backward deletion */ -} CFStringCharacterClusterType; - -CF_EXPORT CFRange CFStringGetRangeOfCharacterClusterAtIndex(CFStringRef string, CFIndex charIndex, CFStringCharacterClusterType type); - -enum { - kCFCompareDiacriticsInsensitive = (1 << 28), - kCFCompareWidthInsensitive = (1 << 29), -}; - -/* CFStringEncoding SPI */ -/* When set, CF encoding conversion engine keeps ASCII compatibility. (i.e. ASCII backslash <-> Unicode backslash in MacJapanese */ -CF_EXPORT void _CFStringEncodingSetForceASCIICompatibility(Boolean flag); - -#if defined(CF_INLINE) -CF_INLINE const UniChar *CFStringGetCharactersPtrFromInlineBuffer(CFStringInlineBuffer *buf, CFRange desiredRange) { - if ((desiredRange.location < 0) || ((desiredRange.location + desiredRange.length) > buf->rangeToBuffer.length)) return NULL; - - if (buf->directBuffer) { - return buf->directBuffer + buf->rangeToBuffer.location + desiredRange.location; - } else { - if (desiredRange.length > __kCFStringInlineBufferLength) return NULL; - - if (((desiredRange.location + desiredRange.length) > buf->bufferedRangeEnd) || (desiredRange.location < buf->bufferedRangeStart)) { - buf->bufferedRangeStart = desiredRange.location; - buf->bufferedRangeEnd = buf->bufferedRangeStart + __kCFStringInlineBufferLength; - if (buf->bufferedRangeEnd > buf->rangeToBuffer.length) buf->bufferedRangeEnd = buf->rangeToBuffer.length; - CFStringGetCharacters(buf->theString, CFRangeMake(buf->rangeToBuffer.location + buf->bufferedRangeStart, buf->bufferedRangeEnd - buf->bufferedRangeStart), buf->buffer); - } - - return buf->buffer + (desiredRange.location - buf->bufferedRangeStart); - } -} - -CF_INLINE void CFStringGetCharactersFromInlineBuffer(CFStringInlineBuffer *buf, CFRange desiredRange, UniChar *outBuf) { - if (buf->directBuffer) { - memmove(outBuf, buf->directBuffer + buf->rangeToBuffer.location + desiredRange.location, desiredRange.length * sizeof(UniChar)); - } else { - if ((desiredRange.location >= buf->bufferedRangeStart) && (desiredRange.location < buf->bufferedRangeEnd)) { - int bufLen = desiredRange.length; - - if (bufLen > (buf->bufferedRangeEnd - desiredRange.location)) bufLen = (buf->bufferedRangeEnd - desiredRange.location); - - memmove(outBuf, buf->buffer + (desiredRange.location - buf->bufferedRangeStart), bufLen * sizeof(UniChar)); - outBuf += bufLen; desiredRange.location += bufLen; desiredRange.length -= bufLen; - } else { - int desiredRangeMax = (desiredRange.location + desiredRange.length); - - if ((desiredRangeMax > buf->bufferedRangeStart) && (desiredRangeMax < buf->bufferedRangeEnd)) { - desiredRange.length = (buf->bufferedRangeStart - desiredRange.location); - memmove(outBuf + desiredRange.length, buf->buffer, (desiredRangeMax - buf->bufferedRangeStart) * sizeof(UniChar)); - } - } - - if (desiredRange.length > 0) CFStringGetCharacters(buf->theString, CFRangeMake(buf->rangeToBuffer.location + desiredRange.location, desiredRange.length), outBuf); - } -} - -#else -#define CFStringGetCharactersPtrFromInlineBuffer(buf, desiredRange) ((buf)->directBuffer ? (buf)->directBuffer + (buf)->rangeToBuffer.location + desiredRange.location : NULL) - -#define CFStringGetCharactersFromInlineBuffer(buf, desiredRange, outBuf) \ - if (buf->directBuffer) memmove(outBuf, (buf)->directBuffer + (buf)->rangeToBuffer.location + desiredRange.location, desiredRange.length * sizeof(UniChar)); \ - else CFStringGetCharacters((buf)->theString, CFRangeMake((buf)->rangeToBuffer.location + desiredRange.location, desiredRange.length), outBuf); - -#endif /* CF_INLINE */ - -#if defined(__cplusplus) -} -#endif - -#endif /* ! __COREFOUNDATION_CFPRIV__ */ -