1/* 2 * Copyright (c) 2014 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/* CFData.h 25 Copyright (c) 1998-2013, Apple Inc. All rights reserved. 26*/ 27 28#if !defined(__COREFOUNDATION_CFDATA__) 29#define __COREFOUNDATION_CFDATA__ 1 30 31#include <CoreFoundation/CFBase.h> 32 33CF_IMPLICIT_BRIDGING_ENABLED 34CF_EXTERN_C_BEGIN 35 36typedef const struct __CFData * CFDataRef; 37typedef struct __CFData * CFMutableDataRef; 38 39CF_EXPORT 40CFTypeID CFDataGetTypeID(void); 41 42CF_EXPORT 43CFDataRef CFDataCreate(CFAllocatorRef allocator, const UInt8 *bytes, CFIndex length); 44 45CF_EXPORT 46CFDataRef CFDataCreateWithBytesNoCopy(CFAllocatorRef allocator, const UInt8 *bytes, CFIndex length, CFAllocatorRef bytesDeallocator); 47 /* Pass kCFAllocatorNull as bytesDeallocator to assure the bytes aren't freed */ 48 49CF_EXPORT 50CFDataRef CFDataCreateCopy(CFAllocatorRef allocator, CFDataRef theData); 51 52CF_EXPORT 53CFMutableDataRef CFDataCreateMutable(CFAllocatorRef allocator, CFIndex capacity); 54 55CF_EXPORT 56CFMutableDataRef CFDataCreateMutableCopy(CFAllocatorRef allocator, CFIndex capacity, CFDataRef theData); 57 58CF_EXPORT 59CFIndex CFDataGetLength(CFDataRef theData); 60 61CF_EXPORT 62const UInt8 *CFDataGetBytePtr(CFDataRef theData); 63 64CF_EXPORT 65UInt8 *CFDataGetMutableBytePtr(CFMutableDataRef theData); 66 67CF_EXPORT 68void CFDataGetBytes(CFDataRef theData, CFRange range, UInt8 *buffer); 69 70CF_EXPORT 71void CFDataSetLength(CFMutableDataRef theData, CFIndex length); 72 73CF_EXPORT 74void CFDataIncreaseLength(CFMutableDataRef theData, CFIndex extraLength); 75 76CF_EXPORT 77void CFDataAppendBytes(CFMutableDataRef theData, const UInt8 *bytes, CFIndex length); 78 79CF_EXPORT 80void CFDataReplaceBytes(CFMutableDataRef theData, CFRange range, const UInt8 *newBytes, CFIndex newLength); 81 82CF_EXPORT 83void CFDataDeleteBytes(CFMutableDataRef theData, CFRange range); 84 85typedef CF_OPTIONS(CFOptionFlags, CFDataSearchFlags) { 86 kCFDataSearchBackwards = 1UL << 0, 87 kCFDataSearchAnchored = 1UL << 1 88} CF_ENUM_AVAILABLE(10_6, 4_0); 89 90CF_EXPORT 91CFRange CFDataFind(CFDataRef theData, CFDataRef dataToFind, CFRange searchRange, CFDataSearchFlags compareOptions) CF_AVAILABLE(10_6, 4_0); 92 93CF_EXTERN_C_END 94CF_IMPLICIT_BRIDGING_DISABLED 95 96#endif /* ! __COREFOUNDATION_CFDATA__ */ 97 98