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