GNUstep CoreBase Library 0.2
CFBitVector.h
1/* CFBitVector.h
2
3 Copyright (C) 2010 Free Software Foundation, Inc.
4
5 Written by: Stefan Bidigaray
6 Date: December, 2011
7
8 This file is part of the GNUstep CoreBase Library.
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_CFBITVECTOR_H__
28#define __COREFOUNDATION_CFBITVECTOR_H__
29
30#include <CoreFoundation/CFBase.h>
31
32CF_EXTERN_C_BEGIN
33
35typedef const struct __CFBitVector *CFBitVectorRef;
37typedef struct __CFBitVector *CFMutableBitVectorRef;
38
42typedef UInt32 CFBit;
43
47CF_EXPORT CFBitVectorRef
48CFBitVectorCreate (CFAllocatorRef allocator, const UInt8 *bytes,
49 CFIndex numBits);
50
51CF_EXPORT CFBitVectorRef
52CFBitVectorCreateCopy (CFAllocatorRef allocator, CFBitVectorRef bv);
58CF_EXPORT Boolean
59CFBitVectorContainsBit (CFBitVectorRef bv, CFRange range, CFBit value);
60
61CF_EXPORT CFBit
62CFBitVectorGetBitAtIndex (CFBitVectorRef bv, CFIndex idx);
63
64CF_EXPORT void
65CFBitVectorGetBits (CFBitVectorRef bv, CFRange range, UInt8 *bytes);
66
67CF_EXPORT CFIndex
68CFBitVectorGetCount (CFBitVectorRef bv);
69
70CF_EXPORT CFIndex
71CFBitVectorGetCountOfBit (CFBitVectorRef bv, CFRange range, CFBit value);
72
73CF_EXPORT CFIndex
74CFBitVectorGetFirstIndexOfBit (CFBitVectorRef bv, CFRange range, CFBit value);
75
76CF_EXPORT CFIndex
77CFBitVectorGetLastIndexOfBit (CFBitVectorRef bv, CFRange range, CFBit value);
82CF_EXPORT CFTypeID
83CFBitVectorGetTypeID (void);
93CF_EXPORT CFMutableBitVectorRef
94CFBitVectorCreateMutable (CFAllocatorRef allocator, CFIndex capacity);
95
96CF_EXPORT CFMutableBitVectorRef
97CFBitVectorCreateMutableCopy (CFAllocatorRef allocator, CFIndex capacity,
98 CFBitVectorRef bv);
104CF_EXPORT void
105CFBitVectorFlipBitAtIndex (CFMutableBitVectorRef bv, CFIndex idx);
106
107CF_EXPORT void
108CFBitVectorFlipBits (CFMutableBitVectorRef bv, CFRange range);
109
110CF_EXPORT void
111CFBitVectorSetAllBits (CFMutableBitVectorRef bv, CFBit value);
112
113CF_EXPORT void
114CFBitVectorSetBitAtIndex (CFMutableBitVectorRef bv, CFIndex idx, CFBit value);
115
116CF_EXPORT void
117CFBitVectorSetBits (CFMutableBitVectorRef bv, CFRange range, CFBit value);
118
119CF_EXPORT void
120CFBitVectorSetCount (CFMutableBitVectorRef bv, CFIndex count);
124CF_EXTERN_C_END
125
126#endif /* __COREFOUNDATION_CFBITVECTOR_H__ */
127
signed long CFIndex
Definition CFBase.h:165
Definition CFBase.h:172
const struct __CFAllocator * CFAllocatorRef
A reference to a CFAllocator object.
Definition CFBase.h:301