/* CFData.h Copyright (C) 2010 Free Software Foundation, Inc. Written by: Stefan Bidigaray Date: January, 2010 This file is part of CoreBase. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; see the file COPYING.LIB. If not, see or write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __COREFOUNDATION_CFDATA_H__ #define __COREFOUNDATION_CFDATA_H__ #include "CFBase.h" CF_EXTERN_C_BEGIN /** \ingroup CFDataRef */ typedef const struct __CFData *CFDataRef; /** \ingroup CFMutableDataRef */ typedef struct __CFData *CFMutableDataRef; /** \defgroup CFDataRef CFData Reference \{ */ /** \name Creating a CFData Object \{ */ CF_EXPORT CFDataRef CFDataCreate (CFAllocatorRef allocator, const UInt8 * bytes, CFIndex length); CF_EXPORT CFDataRef CFDataCreateCopy (CFAllocatorRef allocator, CFDataRef theData); CF_EXPORT CFDataRef CFDataCreateWithBytesNoCopy (CFAllocatorRef allocator, const UInt8 * bytes, CFIndex length, CFAllocatorRef bytesDeallocator); /** \} */ /** \name Examining a CFData Object \{ */ CF_EXPORT const UInt8 *CFDataGetBytePtr (CFDataRef theData); CF_EXPORT void CFDataGetBytes (CFDataRef theData, CFRange range, UInt8 * buffer); CF_EXPORT CFIndex CFDataGetLength (CFDataRef theData); /** \} */ /** \name Getting the CFData Type ID \{ */ CF_EXPORT CFTypeID CFDataGetTypeID (void); /** \} */ /** \} */ /** \defgroup CFMutableDataRef CFMutableData Reference \{ */ /** \name Creating a Mutable Data Object \{ */ CF_EXPORT CFMutableDataRef CFDataCreateMutable (CFAllocatorRef allocator, CFIndex capacity); CF_EXPORT CFMutableDataRef CFDataCreateMutableCopy (CFAllocatorRef allocator, CFIndex capacity, CFDataRef theData); /** \} */ /** \name Accessing Mutable Data \{ */ CF_EXPORT UInt8 *CFDataGetMutableBytePtr (CFMutableDataRef theData); /** \} */ /** \name Modifying a Mutable Data Object \{ */ CF_EXPORT void CFDataAppendBytes (CFMutableDataRef theData, const UInt8 * bytes, CFIndex length); CF_EXPORT void CFDataDeleteBytes (CFMutableDataRef theData, CFRange range); CF_EXPORT void CFDataReplaceBytes (CFMutableDataRef theData, CFRange range, const UInt8 * newBytes, CFIndex newLength); CF_EXPORT void CFDataIncreaseLength (CFMutableDataRef theData, CFIndex extraLength); CF_EXPORT void CFDataSetLength (CFMutableDataRef theData, CFIndex length); /** \} */ /** \} */ CF_EXTERN_C_END #endif /* __COREFOUNDATION_CFDATA_H__ */