OPT_TYPE = 'type'
OPT_CLOSURE = 'closure'
OPT_DESTROY = 'destroy'
+OPT_SKIP = 'skip'
# Specific option values
OPT_VAL_BITFIELD = 'bitfield'
self._parse_version(node, block)
self._parse_deprecated(node, block)
self._parse_attributes(node, block)
+ self._parse_skip(node, block)
def _parse_version(self, node, block):
since_tag = self._get_tag(block, TAG_SINCE)
for key, value in annos_tag.options.iteritems():
node.attributes.append((key, value.one()))
+ def _parse_skip(self, node, block):
+ if block is not None:
+ if OPT_SKIP in block.options:
+ node.skip = True
+
def _parse_rename_to_func(self, node, block):
rename_to_tag = self._get_tag(block, TAG_RENAME_TO)
if rename_to_tag is None:
def __init__(self, name=None):
self.name = name
self.attributes = [] # (key, value)*
+ self.skip = False
self.deprecated = None
self.deprecated_version = None
self.version = None
else:
return cmp(a, b)
for node in sorted(namespace.nodes, cmp=nscmp):
- self._write_node(node)
+ if not node.skip:
+ self._write_node(node)
def _write_node(self, node):
if isinstance(node, Function):
}
#define FOO_DEFINE_SHOULD_NOT_BE_EXPOSED "should not be exposed"
+
+/**
+ * FooSkippable: (skip)
+ * @FOO_SKIPPABLE_ONE: a skippable enum value
+ * @FOO_SKIPPABLE_TWO: another skippable enum value
+ *
+ * Some type that is only interesting from C and should not be
+ * exposed to language bindings.
+ */
+
+/**
+ * foo_skip_me: (skip)
+ * @fs: a #FooSkippable
+ *
+ * Does something that's only interesting from C and should not be
+ * exposed to language bindings.
+ */
+void
+foo_skip_me (FooSkippable fs)
+{
+}
void foo_some_variant (guint x, va_list args);
void foo_some_variant_ptr (guint x, va_list *args);
+/* Should be skipped due to annotations */
+typedef enum {
+ FOO_SKIPPABLE_ONE,
+ FOO_SKIPPABLE_TWO
+} FooSkippable;
+void foo_skip_me (FooSkippable fs);
+
#endif /* __FOO_OBJECT_H__ */