From e404272a241b2ec786e2c6f036f30c3b467316b6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Wed, 20 Nov 2013 21:33:16 -0500 Subject: [PATCH] Python-bindings: Move the _scopes array out of the Event class MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémie Galarneau --- bindings/python/babeltrace.i.in | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/bindings/python/babeltrace.i.in b/bindings/python/babeltrace.i.in index 1dec941f..318b9b8c 100644 --- a/bindings/python/babeltrace.i.in +++ b/bindings/python/babeltrace.i.in @@ -456,7 +456,6 @@ struct bt_ctf_event *bt_ctf_iter_read_event(struct bt_ctf_iter *iter); //Events - %rename("_bt_ctf_get_top_level_scope") bt_ctf_get_top_level_scope(const struct bt_ctf_event *event, enum bt_ctf_scope scope); %rename("_bt_ctf_event_name") bt_ctf_event_name(const struct bt_ctf_event *ctf_event); @@ -570,7 +569,6 @@ class CTFTypeId: break return name - class scope: TRACE_PACKET_HEADER = 0 STREAM_PACKET_CONTEXT = 1 @@ -579,6 +577,10 @@ class scope: EVENT_CONTEXT = 4 EVENT_FIELDS = 5 +# Priority of the scopes when searching for event fields +_scopes = [scope.EVENT_FIELDS, scope.EVENT_CONTEXT, scope.STREAM_EVENT_CONTEXT, + scope.STREAM_EVENT_HEADER, scope.STREAM_PACKET_CONTEXT, scope.TRACE_PACKET_HEADER] + import collections class Event(collections.Mapping): """ @@ -586,10 +588,6 @@ class Event(collections.Mapping): It is obtained using the TraceCollection generator functions. Do not instantiate. """ - i = scope.EVENT_FIELDS - _scopes = [scope.EVENT_FIELDS, scope.EVENT_CONTEXT, scope.STREAM_EVENT_CONTEXT, - scope.STREAM_EVENT_HEADER, scope.STREAM_PACKET_CONTEXT, scope.TRACE_PACKET_HEADER] - def __init__(self): raise NotImplementedError("Event cannot be instantiated") @@ -619,7 +617,7 @@ class Event(collections.Mapping): Get field_name's value in scope. None is returned if no field matches field_name. """ - if not scope in self._scopes: + if not scope in _scopes: raise ValueError("Invalid scope provided") field = self._field_with_scope(field_name, scope) if field is not None: @@ -628,7 +626,7 @@ class Event(collections.Mapping): def field_list_with_scope(self, scope): """Return a list of field names in scope.""" - if not scope in self._scopes: + if not scope in _scopes: raise ValueError("Invalid scope provided") field_names = [] for field in self._field_list_with_scope(scope): @@ -690,7 +688,7 @@ class Event(collections.Mapping): def __len__(self): count = 0 - for scope in self._scopes: + for scope in _scopes: scope_ptr = _bt_ctf_get_top_level_scope(self._e, scope) ret = _bt_python_field_listcaller(self._e, scope_ptr) if isinstance(ret, list): @@ -703,7 +701,7 @@ class Event(collections.Mapping): def keys(self): """Return a list of field names.""" field_names = set() - for scope in self._scopes: + for scope in _scopes: for name in self.field_list_with_scope(scope): field_names.add(name) return list(field_names) @@ -732,7 +730,7 @@ class Event(collections.Mapping): def _field(self, field_name): field = None - for scope in self._scopes: + for scope in _scopes: field = self._field_with_scope(field_name, scope) if field is not None: break @@ -770,14 +768,11 @@ class EventDecl(object): def __init__(self): raise NotImplementedError("EventDecl cannot be instantiated") - def __repr__(self): - return "Babeltrace EventDecl: name {0}".format(self.get_name()) - def get_name(self): """Return the name of the event or None on error""" return _bt_ctf_get_decl_event_name(self._d) - def get_decl_fields(self, scope): + def fields(self, scope): """ Return a list of FieldDecl Return None on error. @@ -856,7 +851,7 @@ class _Definition(object): def __init__(self, definition_ptr, scope): self._d = definition_ptr self._s = scope - if not scope in Event._scopes: + if not scope in _scopes: ValueError("Invalid scope provided") def __repr__(self): -- 2.34.1