if len(sys.argv) < 2:
raise TypeError("Usage: sequence_test.py path/to/file")
-# Create context and add trace:
-ctx = Context()
-trace_handle = ctx.add_trace(sys.argv[1], "ctf")
+# Create TraceCollection and add trace:
+traces = TraceCollection()
+trace_handle = traces.add_trace(sys.argv[1], "ctf")
if trace_handle is None:
raise IOError("Error adding trace")
# Listing events
-lst = CTFReader.get_event_decl_list(trace_handle, ctx)
print("--- Event list ---")
-for item in lst:
- print("event : {}".format(item.get_name()))
+for event_declaration in trace_handle.events:
+ print("event : {}".format(event_declaration.name))
print("--- Done ---")
-# Iter trace
-bp = IterPos(SEEK_BEGIN)
-ctf_it = CTFReader.Iterator(ctx,bp)
-event = ctf_it.read_event()
-
-while(event is not None):
- print("TS: {}, {} : {}".format(event.get_timestamp(),
- event.get_cycles(), event.get_name()))
- field = event.get_field("seq_int_field")
- if field is not None:
- print("int sequence values: {}". format(field[0].get_value()))
- field = event.get_field("seq_long_field")
- if field is not None:
- print("long sequence values: {}". format(field[0].get_value()))
-
- ret = ctf_it.next()
- if ret < 0:
- break
- else:
- event = ctf_it.read_event()
-
-del ctf_it
+for event in traces.events:
+ print("TS: {}, {} : {}".format(event.timestamp,
+ event.cycles, event.name))
+
+ try:
+ sequence = event["seq_int_field"]
+ print("int sequence values: {}". format(sequence))
+ except KeyError:
+ pass
+
+ try:
+ sequence = event["seq_long_field"]
+ print("long sequence values: {}". format(sequence))
+ except KeyError:
+ pass