1 // bindgen-flags: -- -std=c++14 2 3 using uint32_t = unsigned long; 4 using size_t = unsigned long long; 5 6 template<class KeyClass, class DataType> 7 class nsBaseHashtableET { 8 }; 9 10 template<class Entry> 11 class nsTHashtable { 12 }; 13 14 template<class KeyClass, class DataType, class UserDataType> 15 class nsBaseHashtable 16 : protected nsTHashtable<nsBaseHashtableET<KeyClass, DataType>> 17 { 18 19 public: 20 typedef typename KeyClass::KeyType KeyType; 21 typedef nsBaseHashtableET<KeyClass, DataType> EntryType; 22 23 using nsTHashtable<EntryType>::Contains; 24 using nsTHashtable<EntryType>::GetGeneration; 25 nsBaseHashtable()26 nsBaseHashtable() {} 27 explicit nsBaseHashtable(uint32_t); 28 29 struct LookupResult { 30 private: 31 EntryType* mEntry; 32 nsBaseHashtable& mTable; 33 34 public: 35 LookupResult(EntryType*, nsBaseHashtable&); 36 }; 37 38 struct EntryPtr { 39 private: 40 EntryType& mEntry; 41 bool mExistingEntry; 42 43 public: 44 EntryPtr(nsBaseHashtable&, EntryType*, bool); 45 ~EntryPtr(); 46 }; 47 48 }; 49