#if !defined(__COREFOUNDATION_CFURLPRIV__)
#define __COREFOUNDATION_CFURLPRIV__ 1
#include <CoreFoundation/CFBase.h>
#include <CoreFoundation/CFError.h>
#include <CoreFoundation/CFArray.h>
#include <CoreFoundation/CFDictionary.h>
#include <CoreFoundation/CFString.h>
#include <CoreFoundation/CFURL.h>
#if TARGET_OS_MAC
#include <sys/param.h>
#include <sys/mount.h>
#include <CoreFoundation/CFFileSecurity.h>
#include <CoreFoundation/CFURLEnumerator.h>
#include <CoreFoundation/CFDate.h>
#endif
CF_EXTERN_C_BEGIN
#if TARGET_OS_MAC
enum {
kCFURLNoSuchResourceError = 4, kCFURLResourceLockingError = 255, kCFURLReadUnknownError = 256, kCFURLReadNoPermissionError = 257, kCFURLReadInvalidResourceNameError = 258, kCFURLReadCorruptResourceError = 259, kCFURLReadNoSuchResourceError = 260, kCFURLReadInapplicableStringEncodingError = 261, kCFURLReadUnsupportedSchemeError = 262, kCFURLReadTooLargeError = 263, kCFURLReadUnknownStringEncodingError = 264, kCFURLWriteUnknownError = 512, kCFURLWriteNoPermissionError = 513, kCFURLWriteInvalidResourceNameError = 514, kCFURLWriteInapplicableStringEncodingError = 517, kCFURLWriteUnsupportedSchemeError = 518, kCFURLWriteOutOfSpaceError = 640, kCFURLWriteVolumeReadOnlyError = 642, } CF_ENUM_AVAILABLE(10_5, 2_0);
CF_EXPORT
const CFStringRef kCFURLKeyArrayErrorKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLPathKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLInodeNumberKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLFileIDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLParentDirectoryIDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLDistinctLocalizedNameKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLNameExtensionKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLFinderInfoKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLIsCompressedKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLIsApplicationKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLCanSetHiddenExtensionKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLIsReadableKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLUserCanReadKey CF_DEPRECATED(10_0, 10_6, 2_0, 4_0);
CF_EXPORT const CFStringRef _kCFURLIsWriteableKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLUserCanWriteKey CF_DEPRECATED(10_0, 10_6, 2_0, 4_0);
CF_EXPORT const CFStringRef _kCFURLIsExecutableKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLUserCanExecuteKey CF_DEPRECATED(10_0, 10_6, 2_0, 4_0);
CF_EXPORT const CFStringRef _kCFURLParentDirectoryIsVolumeRootKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLFileSecurityKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLFileSizeOfResourceForkKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLFileAllocatedSizeOfResourceForkKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLEffectiveIconImageDataKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLCustomIconImageDataKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLEffectiveIconFlattenedReferenceDataKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLBundleIdentifierKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVersionKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLShortVersionStringKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLOwnerIDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLGroupIDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLStatModeKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLLocalizedNameDictionaryKey CF_AVAILABLE(10_7, NA);
CF_EXPORT const CFStringRef _kCFURLLocalizedTypeDescriptionDictionaryKey CF_AVAILABLE(10_7, NA);
CF_EXPORT const CFStringRef _kCFURLApplicationCategoriesKey CF_AVAILABLE(10_7, NA);
CF_EXPORT const CFStringRef _kCFURLApplicationHighResolutionModeIsMagnifiedKey CF_AVAILABLE(10_7, NA);
CF_EXPORT const CFStringRef _kCFURLCanSetApplicationHighResolutionModeIsMagnifiedKey CF_AVAILABLE(10_7, NA);
CF_EXPORT const CFStringRef _kCFURLWriterBundleIdentifierKey CF_AVAILABLE(10_8, NA);
CF_EXPORT const CFStringRef _kCFURLVolumeRefNumKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeUUIDStringKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeCreationDateKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsLocalKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsAutomountKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeDontBrowseKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsReadOnlyKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsQuarantinedKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsEjectableKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsRemovableKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsInternalKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsExternalKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsDiskImageKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLDiskImageBackingURLKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsFileVaultKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsiDiskKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeiDiskUserNameKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsLocaliDiskMirrorKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsiPodKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsCDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsDVDKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsDeviceFileSystemKey CF_AVAILABLE(10_7, 5_0);
CF_EXPORT const CFStringRef _kCFURLVolumeIsHFSStandardKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLPropertyKeyFullPathString CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLURLString CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLFileIDData CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLResolvedFromBookmarkDataKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLVolumeMountPointStringKey CF_AVAILABLE(10_6, 4_0);
CF_EXPORT const CFStringRef _kCFURLCompleteMountURLKey CF_AVAILABLE(10_6, 4_0);
enum {
kCFURLResourceIsRegularFile = 0x00000001,
kCFURLResourceIsDirectory = 0x00000002,
kCFURLResourceIsSymbolicLink = 0x00000004,
kCFURLResourceIsVolume = 0x00000008,
kCFURLResourceIsPackage = 0x00000010,
kCFURLResourceIsSystemImmutable = 0x00000020,
kCFURLResourceIsUserImmutable = 0x00000040,
kCFURLResourceIsHidden = 0x00000080,
kCFURLResourceHasHiddenExtension = 0x00000100,
kCFURLResourceIsApplication = 0x00000200,
kCFURLResourceIsCompressed = 0x00000400,
kCFURLResourceIsSystemCompressed = 0x00000400,
kCFURLCanSetHiddenExtension = 0x00000800,
kCFURLResourceIsReadable = 0x00001000,
kCFURLResourceIsWriteable = 0x00002000,
kCFURLResourceIsExecutable = 0x00004000,
kCFURLIsAliasFile = 0x00008000,
kCFURLIsMountTrigger = 0x00010000,
};
typedef unsigned long long CFURLResourcePropertyFlags;
CF_EXPORT
Boolean _CFURLGetResourcePropertyFlags(CFURLRef url, CFURLResourcePropertyFlags mask, CFURLResourcePropertyFlags *flags, CFErrorRef *error) CF_AVAILABLE(10_6, 4_0);
typedef CF_OPTIONS(unsigned long long, CFURLFilePropertyBitmap) {
kCFURLName = 0x0000000000000001,
kCFURLLinkCount = 0x0000000000000002,
kCFURLVolumeIdentifier = 0x0000000000000004,
kCFURLObjectIdentifier = 0x0000000000000008,
kCFURLCreationDate = 0x0000000000000010,
kCFURLContentModificationDate = 0x0000000000000020,
kCFURLAttributeModificationDate = 0x0000000000000040,
kCFURLFileSize = 0x0000000000000080,
kCFURLFileAllocatedSize = 0x0000000000000100,
kCFURLFileSizeOfResourceFork = 0x0000000000000200,
kCFURLFileAllocatedSizeOfResourceFork = 0x0000000000000400,
kCFURLFinderInfo = 0x0000000000000800,
kCFURLFileSecurity = 0x0000000000001000,
};
struct _CFURLFilePropertyValues {
CFStringRef name;
uint32_t linkCount;
uint64_t volumeIdentifier;
uint64_t objectIdentifier;
CFAbsoluteTime creationDate;
CFAbsoluteTime contentModificationDate;
CFAbsoluteTime attributeModificationDate;
uint64_t fileSize;
uint64_t fileAllocatedSize;
uint64_t fileSizeOfResourceFork;
uint64_t fileAllocatedSizeOfResourceFork;
uint8_t finderInfo[32];
CFFileSecurityRef fileSecurity;
};
typedef struct _CFURLFilePropertyValues _CFURLFilePropertyValues;
CF_EXPORT
Boolean _CFURLCopyResourcePropertyValuesAndFlags( CFURLRef url, CFURLFilePropertyBitmap requestProperties, CFURLFilePropertyBitmap *actualProperties, struct _CFURLFilePropertyValues *properties, CFURLResourcePropertyFlags propertyFlagsMask, CFURLResourcePropertyFlags *propertyFlags, CFErrorRef *error) CF_AVAILABLE(10_7, 4_0);
typedef CF_OPTIONS(unsigned long long, CFURLVolumePropertyFlags) {
kCFURLVolumeIsLocal = 0x1LL, kCFURLVolumeIsAutomount = 0x2LL, kCFURLVolumeDontBrowse = 0x4LL, kCFURLVolumeIsReadOnly = 0x8LL, kCFURLVolumeIsQuarantined = 0x10LL, kCFURLVolumeIsEjectable = 0x20LL,
kCFURLVolumeIsRemovable = 0x40LL,
kCFURLVolumeIsInternal = 0x80LL,
kCFURLVolumeIsExternal = 0x100LL,
kCFURLVolumeIsDiskImage = 0x200LL,
kCFURLVolumeIsFileVault = 0x400LL,
kCFURLVolumeIsLocaliDiskMirror = 0x800LL,
kCFURLVolumeIsiPod = 0x1000LL,
kCFURLVolumeIsiDisk = 0x2000LL,
kCFURLVolumeIsCD = 0x4000LL,
kCFURLVolumeIsDVD = 0x8000LL,
kCFURLVolumeIsDeviceFileSystem = 0x10000LL,
kCFURLVolumeSupportsPersistentIDs = 0x100000000LL,
kCFURLVolumeSupportsSearchFS = 0x200000000LL,
kCFURLVolumeSupportsExchange = 0x400000000LL,
kCFURLVolumeSupportsSymbolicLinks = 0x1000000000LL,
kCFURLVolumeSupportsDenyModes = 0x2000000000LL,
kCFURLVolumeSupportsCopyFile = 0x4000000000LL,
kCFURLVolumeSupportsReadDirAttr = 0x8000000000LL,
kCFURLVolumeSupportsJournaling = 0x10000000000LL,
kCFURLVolumeSupportsRename = 0x20000000000LL,
kCFURLVolumeSupportsFastStatFS = 0x40000000000LL,
kCFURLVolumeSupportsCaseSensitiveNames = 0x80000000000LL,
kCFURLVolumeSupportsCasePreservedNames = 0x100000000000LL,
kCFURLVolumeSupportsFLock = 0x200000000000LL,
kCFURLVolumeHasNoRootDirectoryTimes = 0x400000000000LL,
kCFURLVolumeSupportsExtendedSecurity = 0x800000000000LL,
kCFURLVolumeSupports2TBFileSize = 0x1000000000000LL,
kCFURLVolumeSupportsHardLinks = 0x2000000000000LL,
kCFURLVolumeSupportsMandatoryByteRangeLocks = 0x4000000000000LL,
kCFURLVolumeSupportsPathFromID = 0x8000000000000LL,
kCFURLVolumeIsJournaling = 0x20000000000000LL,
kCFURLVolumeSupportsSparseFiles = 0x40000000000000LL,
kCFURLVolumeSupportsZeroRuns = 0x80000000000000LL,
kCFURLVolumeSupportsVolumeSizes = 0x100000000000000LL,
kCFURLVolumeSupportsRemoteEvents = 0x200000000000000LL,
kCFURLVolumeSupportsHiddenFiles = 0x400000000000000LL,
kCFURLVolumeSupportsDecmpFSCompression = 0x800000000000000LL,
kCFURLVolumeHas64BitObjectIDs = 0x1000000000000000LL,
kCFURLVolumePropertyFlagsAll = 0xffffffffffffffffLL
};
CF_EXPORT
Boolean _CFURLGetVolumePropertyFlags(CFURLRef url, CFURLVolumePropertyFlags mask, CFURLVolumePropertyFlags *flags, CFErrorRef *error) CF_AVAILABLE(10_6, 4_0);
CF_EXPORT
Boolean _CFURLSetResourcePropertyForKeyAndUpdateFileCache(CFURLRef url, CFStringRef key, CFTypeRef propertyValue, CFErrorRef *error) CF_AVAILABLE(10_7, NA);
CF_EXPORT
CFArrayRef _CFURLCreateDisplayPathComponentsArray(CFURLRef url, CFErrorRef *error) CF_AVAILABLE(10_7, 4_0);
CF_EXPORT
Boolean _CFURLIsFileURL(CFURLRef url) CF_AVAILABLE(10_6, 4_0);
CF_EXPORT
Boolean _CFURLIsFileReferenceURL(CFURLRef url) CF_AVAILABLE(10_6, 4_0);
CF_EXPORT
void *__CFURLResourceInfoPtr(CFURLRef url) CF_AVAILABLE(10_6, 4_0);
CF_EXPORT
void __CFURLSetResourceInfoPtr(CFURLRef url, void *ptr) CF_AVAILABLE(10_6, 4_0);
#if TARGET_OS_MAC
CF_EXPORT
CFURLRef _CFURLCreateFileReferenceURLFromIDs( CFAllocatorRef allocator, fsid_t fsid, UInt64 inodeNumber ) CF_AVAILABLE(10_7, NA);
CF_EXPORT
SInt16 _CFURLVolumeIdentifierGetVolumeRefNum(UInt64 volumeIdentifier) CF_AVAILABLE(10_7, NA);
CF_EXPORT
CFURLRef _CFURLCreateFileReferenceURLFromFSRef(CFAllocatorRef allocator, const struct FSRef *ref) CF_AVAILABLE(10_7, NA);
CF_EXPORT
Boolean _CFURLGetFSRef(CFURLRef url, struct FSRef *fsRef) CF_AVAILABLE(10_7, NA);
CF_EXPORT
Boolean _CFURLGetObjectInformationNoIO(CFURLRef url, UInt64 * volumeIdentifier, UInt64 * objectIdentifier, UInt32 * statMode) CF_AVAILABLE(10_7, NA);
#endif
struct FSCatalogInfo;
struct HFSUniStr255;
CF_EXPORT
SInt32 _CFURLGetCatalogInfo(CFURLRef url, UInt32 whichInfo, struct FSCatalogInfo *catalogInfo, struct HFSUniStr255 *name) CF_AVAILABLE(10_7, 5_0);
enum {
_CFURLItemReplacementUsingNewMetadataOnly = 2,
_CFURLItemReplacementWithoutDeletingBackupItem = 1 << 4
};
CF_EXPORT
Boolean _CFURLReplaceObject( CFAllocatorRef allocator, CFURLRef originalItemURL, CFURLRef newItemURL, CFStringRef newName, CFStringRef backupItemName, CFOptionFlags options, CFURLRef *resultingURL, CFErrorRef *error ) CF_AVAILABLE(10_7, 5_0);
#if (TARGET_OS_MAC) || CF_BUILDING_CF || NSBUILDINGFOUNDATION
CF_EXPORT
CFURLEnumeratorResult _CFURLEnumeratorGetURLsBulk(CFURLEnumeratorRef enumerator, CFIndex maximumURLs, CFIndex *actualURLs, CFURLRef *urls, CFErrorRef *error) CF_AVAILABLE(10_6, 4_0);
#endif
#if TARGET_OS_MAC
enum {
kCFBookmarkFileCreationWithoutOverwritingExistingFile = ( 1UL << 8 ), kCFBookmarkFileCreationWithoutAppendingAliasExtension = ( 1UL << 9 ), kCFBookmarkFileCreationWithoutCreatingResourceFork = ( 1UL << 10 ),
kCFURLBookmarkCreationAllowCreationIfResourceDoesNotExistMask = ( 1 << 28 ),
kCFURLBookmarkCreationDoNotIncludeSandboxExtensionsMask = ( 1 << 29 ), };
enum {
kCFBookmarkResolutionPerformRelativeResolutionFirstMask CF_ENUM_AVAILABLE(10_8,6_0) = ( 1 << 11 ), };
typedef CF_ENUM(CFIndex, CFURLBookmarkMatchResult) {
kCFURLBookmarkComparisonUnableToCompare = 0x00000000,
kCFURLBookmarkComparisonNoMatch = 0x00001000,
kCFURLBookmarkComparisonUnlikelyToMatch = 0x00002000,
kCFURLBookmarkComparisonLikelyToMatch = 0x00004000,
kCFURLBookmarkComparisonMatch = 0x00008000,
kCFURLBookmarkComparisonExactMatch = 0x0000f000
};
CF_EXPORT const CFStringRef _kCFURLPropertyKeyFullPathString; CF_EXPORT const CFStringRef _kCFURLURLString; CF_EXPORT const CFStringRef _kCFURLFileIDData;
CFURLBookmarkMatchResult _CFURLCompareBookmarkData( CFDataRef bookmark1Ref, CFDataRef bookmark2Ref, CFURLRef relativeToURL, CFArrayRef* matchingPropertyKeys ) CF_AVAILABLE(10_7, NA);
CF_EXPORT
CFURLBookmarkMatchResult _CFURLBookmarkDataCompare(CFDataRef bookmark1Ref, CFDataRef bookmark2Ref, CFURLRef relativeToURL, CFArrayRef* matchingPropertyKeys) CF_AVAILABLE(10_7, NA);
CF_EXPORT
OSStatus _CFURLBookmarkDataToAliasHandle(CFDataRef bookmarkRef, void* aliasHandleP) CF_AVAILABLE(10_7, NA);
#endif
extern const CFStringRef kCFURLBookmarkOriginalPathKey CF_AVAILABLE(10_7, 5_0);
extern const CFStringRef kCFURLBookmarkOriginalRelativePathKey CF_AVAILABLE(10_7, 5_0);
extern const CFStringRef kCFURLBookmarkOriginalRelativePathComponentsArrayKey CF_AVAILABLE(10_7, 5_0);
extern const CFStringRef kCFURLBookmarkOriginalVolumeNameKey CF_AVAILABLE(10_7, 5_0);
extern const CFStringRef kCFURLBookmarkOriginalVolumeCreationDateKey CF_AVAILABLE(10_7, 5_0);
#endif
CF_EXTERN_C_END
#endif