X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Ftraceset.c;h=aee03471209c972293d191cad1fbc01a96d8206e;hb=f7afe191fd58f0bf4bab9c9514c261535b99d32b;hp=85e33225bb95e252b2b85e6cfc6cc4f499e87b5b;hpb=7a859036ac53f538bd0ff723a1b450d7f26fa733;p=lttv.git diff --git a/ltt/branches/poly/lttv/traceset.c b/ltt/branches/poly/lttv/traceset.c index 85e33225..aee03471 100644 --- a/ltt/branches/poly/lttv/traceset.c +++ b/ltt/branches/poly/lttv/traceset.c @@ -1,5 +1,6 @@ #include +#include /* A trace is a sequence of events gathered in the same tracing session. The events may be stored in several tracefiles in the same directory. @@ -8,6 +9,7 @@ */ struct _LttvTraceset { + char * filename; GPtrArray *traces; GPtrArray *attributes; LttvAttribute *a; @@ -19,13 +21,65 @@ LttvTraceset *lttv_traceset_new() LttvTraceset *s; s = g_new(LttvTraceset, 1); + s->filename = NULL; s->traces = g_ptr_array_new(); s->attributes = g_ptr_array_new(); s->a = g_object_new(LTTV_ATTRIBUTE_TYPE, NULL); return s; } +LttvTraceset *lttv_traceset_copy(LttvTraceset *s_orig) +{ + int i; + LttvTraceset *s; + + s = g_new(LttvTraceset, 1); + s->filename = NULL; + s->traces = g_ptr_array_new(); + for(i=0;itraces->len;i++) + { + g_ptr_array_add( + s->traces, + ltt_trace_copy(g_ptr_array_index(s_orig->traces, i))); + } + s->attributes = g_ptr_array_new(); + for(i=0;iattributes->len;i++) + { + g_ptr_array_add( + s->attributes, + lttv_iattribute_deep_copy(g_ptr_array_index(s_orig->attributes, i))); + } + + s->a = LTTV_ATTRIBUTE(lttv_iattribute_deep_copy(LTTV_IATTRIBUTE(s_orig->a))); + return s; +} + +LttvTraceset *lttv_traceset_load(const gchar *filename) +{ + LttvTraceset *s = g_new(LttvTraceset,1); + FILE *tf; + + s->filename = g_strdup(filename); + tf = fopen(filename,"r"); + + g_critical("NOT IMPLEMENTED : load traceset data from a XML file"); + + fclose(tf); + return s; +} + +gint lttv_traceset_save(LttvTraceset *s) +{ + FILE *tf; + + tf = fopen(s->filename, "w"); + + g_critical("NOT IMPLEMENTED : save traceset data in a XML file"); + + fclose(tf); + return 0; +} void lttv_traceset_destroy(LttvTraceset *s) { int i, nb; @@ -39,7 +93,6 @@ void lttv_traceset_destroy(LttvTraceset *s) g_free(s); } - void lttv_traceset_add(LttvTraceset *s, LttTrace *t) { g_ptr_array_add(s->traces, t);