*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
*/
#ifndef TRACESET_H
#include <lttv/attribute.h>
#include <lttv/hook.h>
#include <lttv/event.h>
-#include <ltt/ltt.h>
-#include <ltt/time.h>
+#include <lttv/time.h>
#include <lttv/trace.h>
+
/* A traceset is a set of traces to be analyzed together. */
typedef struct _LttvTraceset LttvTraceset;
LttvHooks *event_hooks;
struct bt_ctf_iter *iter;
GPtrArray *state_trace_handle_index;
+ gboolean has_precomputed_states;
+ TimeInterval time_span;
+ char *common_path;
};
+#define TRACE_NAME_SIZE 100
+
struct _LttvTrace {
// Trace id for babeltrace
LttvTraceset *traceset; /* container traceset */
LttvAttribute *a;
guint ref_count;
LttvTraceState *state;
+ char short_name[TRACE_NAME_SIZE];
+ char *full_path;
};
/* In babeltrace, the position concept is an iterator. */
struct _LttvTracesetPosition {
struct bt_ctf_iter *iter;
struct bt_iter_pos *bt_pos;
+ guint64 timestamp;
+ int cpu_id;
};
/* Tracesets may be added to, removed from and their content listed. */
void lttv_traceset_destroy(LttvTraceset *s);
+LttvHooks *lttv_traceset_get_hooks(LttvTraceset *s);
void lttv_traceset_add(LttvTraceset *s, LttvTrace *t);
void lttv_traceset_remove(LttvTraceset *s, unsigned i);
+int lttv_traceset_get_trace_index_from_event(LttvEvent *event);
+
+int lttv_traceset_get_trace_index_from_handle_id(LttvTraceset *ts, int handle_id);
+
/* An attributes table is attached to the set and to each trace in the set. */
LttvAttribute *lttv_traceset_attribute(LttvTraceset *s);
/* Take a position snapshot */
-LttvTracesetPosition *lttv_traceset_create_current_position(LttvTraceset *traceset);
+LttvTracesetPosition *lttv_traceset_create_current_position(const LttvTraceset *traceset);
/* Destroy position snapshot */
void lttv_traceset_destroy_position(LttvTracesetPosition *traceset_pos);
LttTime lttv_traceset_position_get_time(const LttvTracesetPosition *pos);
+LttTime lttv_traceset_get_current_time(const LttvTraceset *ts);
+
int lttv_traceset_position_compare(const LttvTracesetPosition *pos1, const LttvTracesetPosition *pos2);
+int lttv_traceset_position_time_compare(const LttvTracesetPosition *pos1,
+ const LttvTracesetPosition *pos2);
+int lttv_traceset_position_compare_current(const LttvTraceset *ts,
+ const LttvTracesetPosition *pos);
#endif // TRACESET_H