Python bindings: cleanup whitespace
[babeltrace.git] / bindings / python / babeltrace.i.in
index f280458138270d73ba09e3ff4f2ab7ec712cde68..724ed45d7e5d76351cdf905ca75e2690b57c9253 100644 (file)
@@ -226,6 +226,17 @@ class TraceCollection:
                """
                Generator function to iterate over the events of open in the current
                TraceCollection.
+
+               Due to limitations of the native Babeltrace API, only one event
+               may be "alive" at a time (i.e. a user should never store a copy
+               of the events returned by this function for ulterior use). Users
+               shall make sure to copy the information they need from an event
+               before accessing the next one.
+
+               Furthermore, event objects become invalid when the generator goes
+               out of scope as the underlying iterator will be reclaimed. Using an
+               event after the the generator has gone out of scope may result in a
+               crash or data corruption.
                """
                begin_pos_ptr = _bt_iter_pos()
                end_pos_ptr = _bt_iter_pos()
@@ -642,6 +653,7 @@ _scopes = [CTFScope.EVENT_FIELDS, CTFScope.EVENT_CONTEXT, CTFScope.STREAM_EVENT_
        CTFScope.STREAM_EVENT_HEADER, CTFScope.STREAM_PACKET_CONTEXT, CTFScope.TRACE_PACKET_HEADER]
 
 import collections
+from datetime import datetime
 class Event(collections.Mapping):
        """
        This class represents an event from the trace.
@@ -672,6 +684,15 @@ class Event(collections.Mapping):
                """
                return _bt_ctf_get_timestamp(self._e)
 
+       @property
+       def datetime(self):
+               """
+               Return a datetime object based on the event's
+               timestamp. Note that the datetime class' precision
+               is limited to microseconds.
+               """
+               return datetime.fromtimestamp(self.timestamp / 1E9)
+
        def field_with_scope(self, field_name, scope):
                """
                Get field_name's value in scope.
@@ -799,7 +820,7 @@ class Event(collections.Mapping):
        def _field_list_with_scope(self, scope):
                fields = []
                scope_ptr = _bt_ctf_get_top_level_scope(self._e, scope)
-               
+
                # Returns a list [list_ptr, count]. If list_ptr is NULL, SWIG will only
                # provide the "count" return value
                count = 0
@@ -1502,10 +1523,18 @@ void bt_ctf_event_put(struct bt_ctf_event *event);
                ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 */
 %rename("_bt_ctf_stream_class_create") bt_ctf_stream_class_create(const char *name);
+%rename("_bt_ctf_stream_class_get_name") bt_ctf_stream_class_get_name(struct bt_ctf_stream_class *stream_class);
+%rename("_bt_ctf_stream_class_get_clock") bt_ctf_stream_class_get_clock(struct bt_ctf_stream_class *stream_class);
 %rename("_bt_ctf_stream_class_set_clock") bt_ctf_stream_class_set_clock(struct bt_ctf_stream_class *stream_class, struct bt_ctf_clock *clock);
+%rename("_bt_ctf_stream_class_get_id") bt_ctf_stream_class_get_id(struct bt_ctf_stream_class *stream_class);
+%rename("_bt_ctf_stream_class_set_id") bt_ctf_stream_class_set_id(struct bt_ctf_stream_class *stream_class, uint32_t id);
 %rename("_bt_ctf_stream_class_add_event_class") bt_ctf_stream_class_add_event_class(struct bt_ctf_stream_class *stream_class, struct bt_ctf_event_class *event_class);
+%rename("_bt_ctf_stream_class_get_event_class_count") bt_ctf_stream_class_get_event_class_count(struct bt_ctf_stream_class *stream_class);
+%rename("_bt_ctf_stream_class_get_event_class") bt_ctf_stream_class_get_event_class(struct bt_ctf_stream_class *stream_class, size_t index);
+%rename("_bt_ctf_stream_class_get_event_class_by_name") bt_ctf_stream_class_get_event_class_by_name(struct bt_ctf_stream_class *stream_class, const char *name);
 %rename("_bt_ctf_stream_class_get") bt_ctf_stream_class_get(struct bt_ctf_stream_class *stream_class);
 %rename("_bt_ctf_stream_class_put") bt_ctf_stream_class_put(struct bt_ctf_stream_class *stream_class);
+%rename("_bt_ctf_stream_get_discarded_events_count") bt_ctf_stream_get_discarded_events_count(struct bt_ctf_stream *stream, uint64_t *count);
 %rename("_bt_ctf_stream_append_discarded_events") bt_ctf_stream_append_discarded_events(struct bt_ctf_stream *stream, uint64_t event_count);
 %rename("_bt_ctf_stream_append_event") bt_ctf_stream_append_event(struct bt_ctf_stream *stream, struct bt_ctf_event *event);
 %rename("_bt_ctf_stream_flush") bt_ctf_stream_flush(struct bt_ctf_stream *stream);
@@ -1513,10 +1542,18 @@ void bt_ctf_event_put(struct bt_ctf_event *event);
 %rename("_bt_ctf_stream_put") bt_ctf_stream_put(struct bt_ctf_stream *stream);
 
 struct bt_ctf_stream_class *bt_ctf_stream_class_create(const char *name);
+const char *bt_ctf_stream_class_get_name(struct bt_ctf_stream_class *stream_class);
+struct bt_ctf_clock *bt_ctf_stream_class_get_clock(struct bt_ctf_stream_class *stream_class);
 int bt_ctf_stream_class_set_clock(struct bt_ctf_stream_class *stream_class, struct bt_ctf_clock *clock);
+int64_t bt_ctf_stream_class_get_id(struct bt_ctf_stream_class *stream_class);
+int bt_ctf_stream_class_set_id(struct bt_ctf_stream_class *stream_class, uint32_t id);
 int bt_ctf_stream_class_add_event_class(struct bt_ctf_stream_class *stream_class, struct bt_ctf_event_class *event_class);
+int64_t bt_ctf_stream_class_get_event_class_count(struct bt_ctf_stream_class *stream_class);
+struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class(struct bt_ctf_stream_class *stream_class, size_t index);
+struct bt_ctf_event_class *bt_ctf_stream_class_get_event_class_by_name(struct bt_ctf_stream_class *stream_class, const char *name);
 void bt_ctf_stream_class_get(struct bt_ctf_stream_class *stream_class);
 void bt_ctf_stream_class_put(struct bt_ctf_stream_class *stream_class);
+int bt_ctf_stream_get_discarded_events_count(struct bt_ctf_stream *stream, uint64_t *OUTPUT);
 void bt_ctf_stream_append_discarded_events(struct bt_ctf_stream *stream, uint64_t event_count);
 int bt_ctf_stream_append_event(struct bt_ctf_stream *stream, struct bt_ctf_event *event);
 int bt_ctf_stream_flush(struct bt_ctf_stream *stream);
@@ -2506,7 +2543,7 @@ class CTFWriter:
                def id(self):
                        id = _bt_ctf_event_class_get_id(self._ec)
                        if id < 0:
-                               raise TypeError("Could not get EventClass name")
+                               raise TypeError("Could not get EventClass id")
                        return id
 
                """
@@ -2631,12 +2668,27 @@ class CTFWriter:
                def __del__(self):
                        _bt_ctf_stream_class_put(self._sc)
 
+               """
+               Get a stream class' name.
+               """
+               @property
+               def name(self):
+                       name = _bt_ctf_stream_class_get_name(self._sc)
+                       if name is None:
+                               raise TypeError("Could not get StreamClass name")
+                       return name
+
                """
                Get a stream class' clock.
                """
                @property
                def clock(self):
-                       raise NotImplementedError("Getter not implemented.")
+                       clock_instance = _bt_ctf_stream_class_get_clock(self._sc)
+                       if clock_instance is None:
+                               return None
+                       clock = CTFWriter.Clock.__new__(CTFWriter.Clock)
+                       clock._c = clock_instance
+                       return clock
 
                """
                Assign a clock to a stream class.
@@ -2650,6 +2702,43 @@ class CTFWriter:
                        if ret < 0:
                                raise ValueError("Could not set stream class clock.")
 
+               """
+               Get a stream class' id.
+               """
+               @property
+               def id(self):
+                       ret = _bt_ctf_stream_class_get_id(self._sc)
+                       if ret < 0:
+                               raise TypeError("Could not get StreamClass id")
+                       return ret
+
+               """
+               Assign an id to a stream class.
+               """
+               @id.setter
+               def id(self, id):
+                       ret = _bt_ctf_stream_class_set_id(self._sc, id)
+                       if ret < 0:
+                               raise TypeError("Could not set stream class id.")
+
+               """
+               Generator returning the stream class' event classes.
+               """
+               @property
+               def event_classes(self):
+                       count = _bt_ctf_stream_class_get_event_class_count(self._sc)
+                       if count < 0:
+                               raise TypeError("Could not get StreamClass' event class count")
+
+                       for i in range(count):
+                               event_class_native = _bt_ctf_stream_class_get_event_class(self._sc, i)
+                               if event_class_native is None:
+                                       raise TypeError("Could not get StreamClass' event class at index {}".format(i))
+
+                               event_class = CTFWriter.EventClass.__new__(CTFWriter.EventClass)
+                               event_class._ec = event_class_native
+                               yield event_class
+
                """
                Add an event class to a stream class. New events can be added even after a
                stream has been instantiated and events have been appended. However, a stream
@@ -2678,6 +2767,16 @@ class CTFWriter:
                def __del__(self):
                        _bt_ctf_stream_put(self._s)
 
+               """
+               Get a stream's discarded event count.
+               """
+               @property
+               def discarded_events(self):
+                       ret, count = _bt_ctf_stream_get_discarded_events_count(self._s)
+                       if ret < 0:
+                               raise ValueError("Could not get the stream's discarded events count")
+                       return count
+
                """
                Increase the current packet's discarded event count.
                """
This page took 0.026335 seconds and 4 git commands to generate.