(root)/
gcc-13.2.0/
gcc/
testsuite/
objc-obj-c++-shared/
GNUStep/
CoreFoundation/
CFData.h
       1  /* CFData.h
       2  
       3     Copyright (C) 2010 Free Software Foundation, Inc.
       4  
       5     Written by: Stefan Bidigaray
       6     Date: January, 2010
       7  
       8     This file is part of CoreBase.
       9  
      10     This library is free software; you can redistribute it and/or
      11     modify it under the terms of the GNU Lesser General Public
      12     License as published by the Free Software Foundation; either
      13     version 2.1 of the License, or (at your option) any later version.
      14  
      15     This library is distributed in the hope that it will be useful,
      16     but WITHOUT ANY WARRANTY; without even the implied warranty of
      17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      18     Lesser General Public License for more details.
      19  
      20     You should have received a copy of the GNU Lesser General Public
      21     License along with this library; see the file COPYING.LIB.
      22     If not, see <http://www.gnu.org/licenses/> or write to the 
      23     Free Software Foundation, 51 Franklin Street, Fifth Floor, 
      24     Boston, MA 02110-1301, USA.
      25  */
      26  
      27  #ifndef __COREFOUNDATION_CFDATA_H__
      28  #define __COREFOUNDATION_CFDATA_H__
      29  
      30  #include "CFBase.h"
      31  
      32  CF_EXTERN_C_BEGIN
      33  /** \ingroup CFDataRef */
      34  typedef const struct __CFData *CFDataRef;
      35  /** \ingroup CFMutableDataRef */
      36  typedef struct __CFData *CFMutableDataRef;
      37  
      38  /** \defgroup CFDataRef CFData Reference
      39      \{
      40   */
      41  /** \name Creating a CFData Object
      42      \{
      43   */
      44  CF_EXPORT CFDataRef
      45  CFDataCreate (CFAllocatorRef allocator, const UInt8 * bytes, CFIndex length);
      46  
      47  CF_EXPORT CFDataRef
      48  CFDataCreateCopy (CFAllocatorRef allocator, CFDataRef theData);
      49  
      50  CF_EXPORT CFDataRef
      51  CFDataCreateWithBytesNoCopy (CFAllocatorRef allocator, const UInt8 * bytes,
      52                               CFIndex length, CFAllocatorRef bytesDeallocator);
      53  /** \} */
      54  
      55  /** \name Examining a CFData Object
      56      \{
      57   */
      58  CF_EXPORT const UInt8 *CFDataGetBytePtr (CFDataRef theData);
      59  
      60  CF_EXPORT void
      61  CFDataGetBytes (CFDataRef theData, CFRange range, UInt8 * buffer);
      62  
      63  CF_EXPORT CFIndex CFDataGetLength (CFDataRef theData);
      64  /** \} */
      65  
      66  /** \name Getting the CFData Type ID
      67      \{
      68   */
      69  CF_EXPORT CFTypeID CFDataGetTypeID (void);
      70  /** \} */
      71  /** \} */
      72  
      73  /** \defgroup CFMutableDataRef CFMutableData Reference
      74      \{
      75   */
      76  /** \name Creating a Mutable Data Object
      77      \{
      78   */
      79  CF_EXPORT CFMutableDataRef
      80  CFDataCreateMutable (CFAllocatorRef allocator, CFIndex capacity);
      81  
      82  CF_EXPORT CFMutableDataRef
      83  CFDataCreateMutableCopy (CFAllocatorRef allocator, CFIndex capacity,
      84                           CFDataRef theData);
      85  /** \} */
      86  
      87  /** \name Accessing Mutable Data
      88      \{
      89   */
      90  CF_EXPORT UInt8 *CFDataGetMutableBytePtr (CFMutableDataRef theData);
      91  /** \} */
      92  
      93  /** \name Modifying a Mutable Data Object
      94      \{
      95   */
      96  CF_EXPORT void
      97  CFDataAppendBytes (CFMutableDataRef theData, const UInt8 * bytes,
      98                     CFIndex length);
      99  
     100  CF_EXPORT void CFDataDeleteBytes (CFMutableDataRef theData, CFRange range);
     101  
     102  CF_EXPORT void
     103  CFDataReplaceBytes (CFMutableDataRef theData, CFRange range,
     104                      const UInt8 * newBytes, CFIndex newLength);
     105  
     106  CF_EXPORT void
     107  CFDataIncreaseLength (CFMutableDataRef theData, CFIndex extraLength);
     108  
     109  CF_EXPORT void CFDataSetLength (CFMutableDataRef theData, CFIndex length);
     110  /** \} */
     111  /** \} */
     112  
     113  CF_EXTERN_C_END
     114  #endif /* __COREFOUNDATION_CFDATA_H__ */