stats major rework, with addition of function support
[lttv.git] / ltt / branches / poly / lttv / lttv / iattribute.h
index 11dccd10ad178af57a5228c63071b7c3478347ce..0783077f646473fd3d33f584575ad6b3a8348a46 100644 (file)
@@ -16,6 +16,8 @@
  * MA 02111-1307, USA.
  */
 
+/* FIXME : unnamed attributes not implemented */
+
 #ifndef IATTRIBUTE_H
 #define IATTRIBUTE_H
 
    and access functions over a wide range of structures. The names are 
    represented by unique integer identifiers, GQuarks. */
 
+/* Please note that adding a value of type gobject that is non null does not
+ * increment the reference count of this object : the actual reference to
+ * the object is "given" to the attribute tree. When the gobject value
+ * is removed, the object is unreferenced. A value copy through
+ * lttv_iattribute_copy_value does increase the reference count of the 
+ * gobject. */
+
 typedef GQuark LttvAttributeName;
 
 typedef enum _LttvAttributeType {
@@ -66,6 +75,8 @@ typedef struct _LttvIAttributeClass LttvIAttributeClass;
 struct _LttvIAttributeClass {
   GTypeInterface parent;
 
+  LttvIAttribute* (*new_attribute) (LttvIAttribute *self);
+
   unsigned int (*get_number) (LttvIAttribute *self);
 
   gboolean (*named) (LttvIAttribute *self, gboolean *homogeneous);
@@ -123,7 +134,6 @@ LttvAttributeType lttv_iattribute_get_by_name(LttvIAttribute *self,
 LttvAttributeValue lttv_iattribute_add(LttvIAttribute *self, 
     LttvAttributeName name, LttvAttributeType t);
 
-
 /* Remove an attribute */
 
 void lttv_iattribute_remove(LttvIAttribute *self, unsigned i);
This page took 0.02441 seconds and 4 git commands to generate.