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