diff options
Diffstat (limited to 'bindgen-tests/tests/headers/nsBaseHashtable.hpp')
-rw-r--r-- | bindgen-tests/tests/headers/nsBaseHashtable.hpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/bindgen-tests/tests/headers/nsBaseHashtable.hpp b/bindgen-tests/tests/headers/nsBaseHashtable.hpp new file mode 100644 index 00000000..36a480f2 --- /dev/null +++ b/bindgen-tests/tests/headers/nsBaseHashtable.hpp @@ -0,0 +1,48 @@ +// bindgen-flags: -- -std=c++14 + +using uint32_t = unsigned long; +using size_t = unsigned long long; + +template<class KeyClass, class DataType> +class nsBaseHashtableET { +}; + +template<class Entry> +class nsTHashtable { +}; + +template<class KeyClass, class DataType, class UserDataType> +class nsBaseHashtable + : protected nsTHashtable<nsBaseHashtableET<KeyClass, DataType>> +{ + +public: + typedef typename KeyClass::KeyType KeyType; + typedef nsBaseHashtableET<KeyClass, DataType> EntryType; + + using nsTHashtable<EntryType>::Contains; + using nsTHashtable<EntryType>::GetGeneration; + + nsBaseHashtable() {} + explicit nsBaseHashtable(uint32_t); + + struct LookupResult { + private: + EntryType* mEntry; + nsBaseHashtable& mTable; + + public: + LookupResult(EntryType*, nsBaseHashtable&); + }; + + struct EntryPtr { + private: + EntryType& mEntry; + bool mExistingEntry; + + public: + EntryPtr(nsBaseHashtable&, EntryType*, bool); + ~EntryPtr(); + }; + +}; |