1 // 2 // AMutableDictionary.h 3 // ST4 4 // 5 // Created by Alan Condit on 4/18/11. 6 // Copyright 2011 Alan Condit. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 #import "ACBTree.h" 11 #import "ArrayIterator.h" 12 13 @class ACBTree; 14 @class ArrayIterator; 15 16 @interface AMutableDictionary : NSMutableDictionary { 17 18 __strong ACBTree *root; 19 NSInteger nodes_av; 20 NSInteger nodes_inuse; 21 NSInteger nxt_nodeid; 22 NSUInteger count; 23 __strong NSMutableData *data; 24 __strong id *ptrBuffer; 25 } 26 27 @property (retain) ACBTree *root; 28 @property (assign) NSInteger nodes_av; 29 @property (assign) NSInteger nodes_inuse; 30 @property (assign) NSInteger nxt_nodeid; 31 @property (assign, readonly, getter=count) NSUInteger count; 32 @property (assign) NSMutableData *data; 33 @property (assign) id *ptrBuffer; 34 35 + (AMutableDictionary *) newDictionary; 36 + (AMutableDictionary *) dictionaryWithCapacity; 37 38 - (id) init; 39 - (id) initWithCapacity:(NSUInteger)numItems; 40 - (void) dealloc; 41 42 - (BOOL) isEqual:(id)object; 43 - (id) objectForKey:(id)aKey; 44 - (void) setObject:(id)obj forKey:(id)aKey; 45 - (void) removeObjectForKey:(id)aKey; 46 47 - (NSUInteger) count; 48 49 - (NSArray *) allKeys; 50 - (NSArray *) allValues; 51 - (ArrayIterator *) keyEnumerator; 52 - (ArrayIterator *) objectEnumerator; 53 54 - (void) clear; 55 - (void) removeAllObjects; 56 - (NSInteger) nextNodeId; 57 - (NSArray *) toKeyArray; 58 - (NSArray *) toValueArray; 59 60 @end 61