#ifndef ATTRIBUTE_H
#define ATTRIBUTE_H
+/* FIXME : unnamed attributes not implemented */
+
#include <glib-object.h>
#include <lttv/iattribute.h>
#include <stdio.h>
struct _LttvAttributeClass {
GObjectClass parent;
+
};
GType lttv_attribute_get_type (void);
/* Get the i th attribute along with its type and a pointer to its value. */
LttvAttributeType lttv_attribute_get(LttvAttribute *self, unsigned i,
- LttvAttributeName *name, LttvAttributeValue *v);
+ LttvAttributeName *name, LttvAttributeValue *v, gboolean *is_named);
/* Get the named attribute in the table along with its type and a pointer to
LttvAttributeValue lttv_attribute_add(LttvAttribute *self,
LttvAttributeName name, LttvAttributeType t);
+LttvAttributeValue lttv_attribute_add_unnamed(LttvAttribute *self,
+ LttvAttributeName name, LttvAttributeType t);
/* Remove an attribute */
LttvAttribute* lttv_attribute_find_subdir(LttvAttribute *self,
LttvAttributeName name);
+LttvAttribute* lttv_attribute_find_subdir_unnamed(LttvAttribute *self,
+ LttvAttributeName name);
+
+
gboolean lttv_attribute_find(LttvAttribute *self, LttvAttributeName name,
LttvAttributeType t, LttvAttributeValue *v);
/* Free recursively a tree of attributes. All contained gobject of type
LttvAttribute are freed (unreferenced) recursively. */
-void lttv_attribute_recursive_free(LttvAttribute *self);
+// Now done by default.
+// void lttv_attribute_recursive_free(LttvAttribute *self);
/* Add items from a tree of attributes to another tree. */