xref: /aosp_15_r20/external/lzma/CPP/Common/MyMap.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // MyMap.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_COMMON_MY_MAP_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_COMMON_MY_MAP_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "MyTypes.h"
7*f6dc9357SAndroid Build Coastguard Worker #include "MyVector.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker class CMap32
10*f6dc9357SAndroid Build Coastguard Worker {
11*f6dc9357SAndroid Build Coastguard Worker   struct CNode
12*f6dc9357SAndroid Build Coastguard Worker   {
13*f6dc9357SAndroid Build Coastguard Worker     UInt32 Key;
14*f6dc9357SAndroid Build Coastguard Worker     UInt32 Keys[2];
15*f6dc9357SAndroid Build Coastguard Worker     UInt32 Values[2];
16*f6dc9357SAndroid Build Coastguard Worker     UInt16 Len;
17*f6dc9357SAndroid Build Coastguard Worker     Byte IsLeaf[2];
18*f6dc9357SAndroid Build Coastguard Worker   };
19*f6dc9357SAndroid Build Coastguard Worker   CRecordVector<CNode> Nodes;
20*f6dc9357SAndroid Build Coastguard Worker 
21*f6dc9357SAndroid Build Coastguard Worker public:
22*f6dc9357SAndroid Build Coastguard Worker 
Clear()23*f6dc9357SAndroid Build Coastguard Worker   void Clear() { Nodes.Clear(); }
24*f6dc9357SAndroid Build Coastguard Worker   bool Find(UInt32 key, UInt32 &valueRes) const throw();
25*f6dc9357SAndroid Build Coastguard Worker   bool Set(UInt32 key, UInt32 value); // returns true, if there is such key already
26*f6dc9357SAndroid Build Coastguard Worker };
27*f6dc9357SAndroid Build Coastguard Worker 
28*f6dc9357SAndroid Build Coastguard Worker #endif
29