ObjFW
src/OFMutableArray.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 "OFArray.h"
00018 
00019 #ifdef OF_HAVE_BLOCKS
00020 typedef id (^of_array_replace_block_t)(id obj, size_t idx, BOOL *stop);
00021 #endif
00022 
00026 @interface OFMutableArray: OFArray
00027 {
00028         unsigned long mutations;
00029 }
00030 
00036 - (void)addObject: (id)obj;
00037 
00044 - (void)addObject: (id)obj
00045           atIndex: (size_t)index;
00046 
00054 - (void)replaceObject: (id)old
00055            withObject: (id)new_;
00056 
00063 - (void)replaceObjectAtIndex: (size_t)index
00064                   withObject: (id)obj;
00065 
00073 - (void)replaceObjectIdenticalTo: (id)old
00074                       withObject: (id)new_;
00075 
00081 - (void)removeObject: (id)obj;
00082 
00088 - (void)removeObjectIdenticalTo: (id)obj;
00089 
00095 - (void)removeObjectAtIndex: (size_t)index;
00096 
00102 - (void)removeNObjects: (size_t)nobjects;
00103 
00110 - (void)removeNObjects: (size_t)nobjects
00111                atIndex: (size_t)index;
00112 
00113 #ifdef OF_HAVE_BLOCKS
00114 
00119 - (void)replaceObjectsUsingBlock: (of_array_replace_block_t)block;
00120 #endif
00121 @end
 All Classes Functions Variables