Export the list header with a new namespace
[babeltrace.git] / include / babeltrace / types.h
index 5523eb42987adcc7af24a6e3fe2702109f835269..0cedb337b03d389dfdda9199c8a2477986c33c46 100644 (file)
@@ -6,7 +6,9 @@
  *
  * Type Header
  *
- * Copyright 2010, 2011 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation
+ *
+ * Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -21,6 +23,7 @@
 
 #include <babeltrace/align.h>
 #include <babeltrace/list.h>
+#include <babeltrace/ctf/events.h>
 #include <stdbool.h>
 #include <stdint.h>
 #include <limits.h>
@@ -35,6 +38,7 @@ struct ctf_stream;
 struct stream_pos;
 struct format;
 struct definition;
+struct ctf_clock;
 
 /* type scope */
 struct declaration_scope {
@@ -66,20 +70,6 @@ struct definition_scope {
        GArray *scope_path;     /* array of GQuark */
 };
 
-enum ctf_type_id {
-       CTF_TYPE_UNKNOWN = 0,
-       CTF_TYPE_INTEGER,
-       CTF_TYPE_FLOAT,
-       CTF_TYPE_ENUM,
-       CTF_TYPE_STRING,
-       CTF_TYPE_STRUCT,
-       CTF_TYPE_UNTAGGED_VARIANT,
-       CTF_TYPE_VARIANT,
-       CTF_TYPE_ARRAY,
-       CTF_TYPE_SEQUENCE,
-       NR_CTF_TYPES,
-};
-
 struct declaration {
        enum ctf_type_id id;
        size_t alignment;       /* type alignment, in bits */
@@ -149,6 +139,7 @@ struct declaration_integer {
        int signedness;
        int base;               /* Base for pretty-printing: 2, 8, 10, 16 */
        enum ctf_string_encoding encoding;
+       struct ctf_clock *clock;
 };
 
 struct definition_integer {
@@ -177,7 +168,7 @@ struct definition_float {
        struct definition_integer *mantissa;
        struct definition_integer *exp;
        /* Last values read */
-       long double value;
+       double value;
 };
 
 /*
@@ -195,7 +186,7 @@ struct enum_range {
 };
 
 struct enum_range_to_quark {
-       struct cds_list_head node;
+       struct bt_list_head node;
        struct enum_range range;
        GQuark quark;
 };
@@ -214,7 +205,7 @@ struct enum_range_to_quark {
  */
 struct enum_table {
        GHashTable *value_to_quark_set;         /* (value, GQuark GArray) */
-       struct cds_list_head range_to_quark;    /* (range, GQuark) */
+       struct bt_list_head range_to_quark;     /* (range, GQuark) */
        GHashTable *quark_to_range_set;         /* (GQuark, range GArray) */
 };
 
@@ -380,7 +371,10 @@ void definition_unref(struct definition *definition);
 
 struct declaration_integer *integer_declaration_new(size_t len, int byte_order,
                                  int signedness, size_t alignment,
-                                 int base, enum ctf_string_encoding encoding);
+                                 int base, enum ctf_string_encoding encoding,
+                                 struct ctf_clock *clock);
+uint64_t get_unsigned_int(struct definition *field);
+int64_t get_signed_int(struct definition *field);
 
 /*
  * mantissa_len is the length of the number of bytes represented by the mantissa
@@ -427,6 +421,7 @@ struct declaration_enum *
 
 struct declaration_string *
        string_declaration_new(enum ctf_string_encoding encoding);
+char *get_string(struct definition *field);
 
 struct declaration_struct *
        struct_declaration_new(struct declaration_scope *parent_scope,
@@ -491,6 +486,7 @@ struct declaration_array *
 uint64_t array_len(struct definition_array *array);
 struct definition *array_index(struct definition_array *array, uint64_t i);
 int array_rw(struct stream_pos *pos, struct definition *definition);
+GString *get_char_array(struct definition *field);
 
 /*
  * int_declaration and elem_declaration passed as parameter now belong
This page took 0.024289 seconds and 4 git commands to generate.