xref: /aosp_15_r20/external/antlr/runtime/ObjC/Framework/DoubleKeyMap.h (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robot 
2*16467b97STreehugger Robot #import "AMutableArray.h"
3*16467b97STreehugger Robot #import "AMutableDictionary.h"
4*16467b97STreehugger Robot #import "LinkBase.h"
5*16467b97STreehugger Robot /**
6*16467b97STreehugger Robot  * Sometimes we need to map a key to a value but key is two pieces of data.
7*16467b97STreehugger Robot  * This nested hash table saves creating a single key each time we access
8*16467b97STreehugger Robot  * map; avoids mem creation.
9*16467b97STreehugger Robot  */
10*16467b97STreehugger Robot 
11*16467b97STreehugger Robot @class AMutableArray;
12*16467b97STreehugger Robot 
13*16467b97STreehugger Robot @interface DoubleKeyMap : LinkBase {
14*16467b97STreehugger Robot     AMutableDictionary *data;
15*16467b97STreehugger Robot }
16*16467b97STreehugger Robot 
17*16467b97STreehugger Robot - (id) init;
18*16467b97STreehugger Robot - (id) setObject:(id)v forKey1:(id)k1 forKey2:(NSString *)k2;
19*16467b97STreehugger Robot - (id) objectForKey1:(id)k1 forKey2:(id)k2;
20*16467b97STreehugger Robot - (AMutableDictionary *) objectForKey:(id)k1;
21*16467b97STreehugger Robot - (NSArray *) valuesForKey:(id)k1;
22*16467b97STreehugger Robot - (NSArray *) allKeys1;
23*16467b97STreehugger Robot - (AMutableArray *) allKeys2:(id)k1;
24*16467b97STreehugger Robot - (NSArray *) values;
25*16467b97STreehugger Robot 
26*16467b97STreehugger Robot @property (retain) AMutableDictionary *data;
27*16467b97STreehugger Robot 
28*16467b97STreehugger Robot @end
29