ObjFW
|
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