+ """
+ Get the event class' name.
+ """
+ @property
+ def name(self):
+ name = _bt_ctf_event_class_get_name(self._ec)
+ if name is None:
+ raise TypeError("Could not get EventClass name")
+ return name
+
+ """
+ Get the event class' id. Returns a negative value if unset.
+ """
+ @property
+ def id(self):
+ id = _bt_ctf_event_class_get_id(self._ec)
+ if id < 0:
+ raise TypeError("Could not get EventClass name")
+ return id
+
+ """
+ Set the event class' id. Throws a TypeError if the event class
+ is already registered to a stream class.
+ """
+ @id.setter
+ def id(self, id):
+ ret = _bt_ctf_event_class_set_id(self._ec, id)
+ if ret < 0:
+ raise TypeError("Can't change an Event Class's id after it has been assigned to a stream class")
+
+ """
+ Get the event class' stream class. Returns None if unset.
+ """
+ @property
+ def stream_class(self):
+ stream_class_native = _bt_ctf_event_class_get_stream_class(self._ec)
+ if stream_class_native is None:
+ return None
+ stream_class = CTFWriter.StreamClass.__new__(CTFWriter.StreamClass)
+ stream_class._sc = stream_class_native
+ return stream_class
+
+ """
+ Generator returning the event class' fields as tuples of (field name, field declaration).
+ """
+ @property
+ def fields(self):
+ count = _bt_ctf_event_class_get_field_count(self._ec)
+ if count < 0:
+ raise TypeError("Could not get EventClass' field count")
+
+ for i in range(count):
+ field_name = _bt_python_ctf_event_class_get_field_name(self._ec, i)
+ if field_name is None:
+ raise TypeError("Could not get EventClass' field name at index {}".format(i))
+
+ field_type_native = _bt_python_ctf_event_class_get_field_type(self._ec, i)
+ if field_type_native is None:
+ raise TypeError("Could not get EventClass' field type at index {}".format(i))
+
+ field_type = CTFWriter.FieldDeclaration._create_field_declaration_from_native_instance(field_type_native)
+ yield (field_name, field_type)
+
+ """
+ Get a field declaration by name (FieldDeclaration).
+ """
+ def get_field_by_name(self, name):
+ field_type_native = _bt_ctf_event_class_get_field_by_name(self._ec, name)
+ if field_type_native is None:
+ raise TypeError("Could not find EventClass field with name {}".format(name))
+ return CTFWriter.FieldDeclaration._create_field_declaration_from_native_instance(field_type_native)
+