ObjFW
src/OFEnumerator.h
00001 /*
00002  * Copyright (c) 2008, 2009, 2010, 2011
00003  *   Jonathan Schleifer <js@webkeks.org>
00004  *
00005  * All rights reserved.
00006  *
00007  * This file is part of ObjFW. It may be distributed under the terms of the
00008  * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
00009  * the packaging of this file.
00010  *
00011  * Alternatively, it may be distributed under the terms of the GNU General
00012  * Public License, either version 2 or 3, which can be found in the file
00013  * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
00014  * file.
00015  */
00016 
00017 #import "OFObject.h"
00018 
00022 @interface OFEnumerator: OFObject
00026 - (id)nextObject;
00027 
00032 - (void)reset;
00033 @end
00034 
00035 /*
00036  * This needs to be exactly like this because it's hardcoded in the compiler.
00037  *
00038  * We need this bad check to see if we already imported Cocoa, which defines
00039  * this as well.
00040  */
00041 #define of_fast_enumeration_state_t NSFastEnumerationState
00042 #ifndef NSINTEGER_DEFINED
00043 
00046 typedef struct of_fast_enumeration_state_t {
00048         unsigned long state;
00050         id *itemsPtr;
00052         unsigned long *mutationsPtr;
00054         unsigned long extra[5];
00055 } of_fast_enumeration_state_t;
00056 #endif
00057 
00064 @protocol OFFastEnumeration
00065 - (int)countByEnumeratingWithState: (of_fast_enumeration_state_t*)state
00066                            objects: (id*)objects
00067                              count: (int)count;
00068 @end
 All Classes Functions Variables