1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//  AMutableDictionary.h
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//  ST4
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//  Created by Alan Condit on 4/18/11.
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//  Copyright 2011 Alan Condit. All rights reserved.
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#import <Foundation/Foundation.h>
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#import "ACBTree.h"
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#import "ArrayIterator.h"
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@class ACBTree;
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@class ArrayIterator;
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@interface AMutableDictionary : NSMutableDictionary {
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    __strong ACBTree  *root;
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    NSInteger nodes_av;
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    NSInteger nodes_inuse;
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    NSInteger nxt_nodeid;
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    NSUInteger count;
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    __strong NSMutableData *data;
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    __strong id       *ptrBuffer;
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (retain) ACBTree  *root;
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (assign) NSInteger nodes_av;
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (assign) NSInteger nodes_inuse;
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (assign) NSInteger nxt_nodeid;
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (assign, readonly, getter=count) NSUInteger count;
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (assign) NSMutableData *data;
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@property (assign) id       *ptrBuffer;
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (AMutableDictionary *) newDictionary;
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver+ (AMutableDictionary *) dictionaryWithCapacity;
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) init;
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) initWithCapacity:(NSUInteger)numItems;
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) dealloc;
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (BOOL) isEqual:(id)object;
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (id) objectForKey:(id)aKey;
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) setObject:(id)obj forKey:(id)aKey;
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) removeObjectForKey:(id)aKey;
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (NSUInteger) count;
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (NSArray *) allKeys;
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (NSArray *) allValues;
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (ArrayIterator *) keyEnumerator;
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (ArrayIterator *) objectEnumerator;
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) clear;
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (void) removeAllObjects;
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (NSInteger) nextNodeId;
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (NSArray *) toKeyArray;
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver- (NSArray *) toValueArray;
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver@end
61