summaryrefslogtreecommitdiff
path: root/bindgen-tests/tests/headers/nsBaseHashtable.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'bindgen-tests/tests/headers/nsBaseHashtable.hpp')
-rw-r--r--bindgen-tests/tests/headers/nsBaseHashtable.hpp48
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();
+ };
+
+};