summaryrefslogtreecommitdiff
path: root/src/interface-map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface-map.h')
-rw-r--r--src/interface-map.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/interface-map.h b/src/interface-map.h
new file mode 100644
index 0000000..c9dd654
--- /dev/null
+++ b/src/interface-map.h
@@ -0,0 +1,43 @@
+/* Interface mapping
+ *
+ * This file is part of nsgenbind.
+ * Licensed under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2012 Vincent Sanders <vince@netsurf-browser.org>
+ */
+
+#ifndef nsgenbind_interface_map_h
+#define nsgenbind_interface_map_h
+
+struct genbind_node;
+struct webidl_node;
+
+struct interface_map_entry {
+ const char *name; /** interface name */
+ struct webidl_node *node; /**< AST interface node */
+ const char *inherit_name; /**< Name of interface inhertited from */
+ int operations; /**< number of operations on interface */
+ int attributes; /**< number of attributes on interface */
+ int inherit_idx; /**< index into map of inherited interface or -1 for
+ * not in map
+ */
+ int refcount; /**< number of interfacess in map that refer to this
+ * interface
+ */
+ struct genbind_node *class; /**< class from binding (if any) */
+};
+
+struct interface_map {
+ int entryc; /**< count of interfaces */
+ struct interface_map_entry *entries;
+};
+
+int interface_map_new(struct genbind_node *genbind,
+ struct webidl_node *webidl,
+ struct interface_map **index_out);
+
+int interface_map_dump(struct interface_map *index);
+
+int interface_map_dumpdot(struct interface_map *index);
+
+#endif