From 24d5c942785816bc3c6ad926dc1272510c38948d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Tue, 17 Sep 2013 11:47:07 -0400 Subject: [PATCH] Rename the ctf class to CTFReader MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This prevents name collisions with the upcoming CTFWriter classes. Signed-off-by: Jérémie Galarneau --- bindings/python/babeltrace.i.in | 143 +++++++++--------- .../python/examples/babeltrace_and_lttng.py | 2 +- bindings/python/examples/example-api-test.py | 4 +- bindings/python/examples/sched_switch.py | 6 +- bindings/python/examples/sequence_test.py | 4 +- 5 files changed, 82 insertions(+), 77 deletions(-) diff --git a/bindings/python/babeltrace.i.in b/bindings/python/babeltrace.i.in index a2ba374d..62026487 100644 --- a/bindings/python/babeltrace.i.in +++ b/bindings/python/babeltrace.i.in @@ -652,33 +652,38 @@ const struct bt_definition *bt_ctf_get_struct_field_index(const struct bt_defini %pythoncode%{ -class ctf: - - #enum equivalent, accessible constants - #These are taken directly from ctf/events.h - #All changes to enums must also be made here - class type_id: - UNKNOWN = 0 - INTEGER = 1 - FLOAT = 2 - ENUM = 3 - STRING = 4 - STRUCT = 5 - UNTAGGED_VARIANT = 6 - VARIANT = 7 - ARRAY = 8 - SEQUENCE = 9 - NR_CTF_TYPES = 10 - - def get_type_id_name(id): - name = "UNKNOWN" - constants = [attr for attr in dir(ctf.type_id) if not callable(getattr(ctf.type_id, attr)) and not attr.startswith("__")] - for attr in constants: - if getattr(ctf.type_id, attr) == id: - name = attr - break - return name - +class CTFStringEncoding: + NONE = 0 + UTF8 = 1 + ASCII = 2 + UNKNOWN = 3 + +#enum equivalent, accessible constants +#These are taken directly from ctf/events.h +#All changes to enums must also be made here +class CTFTypeId: + UNKNOWN = 0 + INTEGER = 1 + FLOAT = 2 + ENUM = 3 + STRING = 4 + STRUCT = 5 + UNTAGGED_VARIANT = 6 + VARIANT = 7 + ARRAY = 8 + SEQUENCE = 9 + NR_CTF_TYPES = 10 + + def get_type_name(id): + name = "UNKNOWN" + constants = [attr for attr in dir(CTFTypeId) if not callable(getattr(CTFTypeId, attr)) and not attr.startswith("__")] + for attr in constants: + if getattr(CTFTypeId, attr) == id: + name = attr + break + return name + +class CTFReader: class scope: TRACE_PACKET_HEADER = 0 STREAM_PACKET_CONTEXT = 1 @@ -714,7 +719,7 @@ class ctf: def __new__(cls, context, begin_pos = None, end_pos = None): # __new__ is used to control the return value - # as the ctf.Iterator class should return None + # as the CTFReader.Iterator class should return None # if bt_ctf_iter_create returns NULL if begin_pos is None: @@ -733,7 +738,7 @@ class ctf: if it is None: return None - ret_class = super(ctf.Iterator, cls).__new__(cls) + ret_class = super(CTFReader.Iterator, cls).__new__(cls) ret_class._i = it return ret_class @@ -752,7 +757,7 @@ class ctf: ret = _bt_ctf_iter_read_event(self._i) if ret is None: return ret - ev = ctf.Event.__new__(ctf.Event) + ev = CTFReader.Event.__new__(CTFReader.Event) ev._e = ret return ev @@ -760,24 +765,24 @@ class ctf: class Event(object): """ This class represents an event from the trace. - It is obtained with read_event() from ctf.Iterator. + It is obtained with read_event() from CTFReader.Iterator. Do not instantiate. """ def __init__(self): - raise NotImplementedError("ctf.Event cannot be instantiated") + raise NotImplementedError("CTFReader.Event cannot be instantiated") def get_top_level_scope(self, scope): """ Return a definition of the top-level scope - Top-level scopes are defined in ctf.scope. + Top-level scopes are defined in CTFReader.scope. In order to get a field or a field list, the user needs to pass a scope as argument, this scope can be a top-level scope or a scope relative to an arbitrary field. This function provides the mapping between the scope and the actual definition of top-level scopes. On error return None. """ - evDef = ctf.Definition.__new__(ctf.Definition) + evDef = CTFReader.Definition.__new__(CTFReader.Definition) evDef._d = _bt_ctf_get_top_level_scope(self._e, scope) if evDef._d is None: return None @@ -806,7 +811,7 @@ class ctf: Return the definition of a specific field. Return None on error. """ - evDef = ctf.Definition.__new__(ctf.Definition) + evDef = CTFReader.Definition.__new__(CTFReader.Definition) try: evDef._d = _bt_ctf_get_field(self._e, scope._d, field) except AttributeError: @@ -822,8 +827,8 @@ class ctf: Return the definition of fields by a name Return None on error """ - eventScope = self.get_top_level_scope(ctf.scope.EVENT_FIELDS) - streamScope = self.get_top_level_scope(ctf.scope.STREAM_EVENT_CONTEXT) + eventScope = self.get_top_level_scope(CTFReader.scope.EVENT_FIELDS) + streamScope = self.get_top_level_scope(CTFReader.scope.STREAM_EVENT_CONTEXT) fields_by_name = [] if eventScope is not None: @@ -856,7 +861,7 @@ class ctf: def_list = [] for i in range(count): - tmp = ctf.Definition.__new__(ctf.Definition) + tmp = CTFReader.Definition.__new__(CTFReader.Definition) tmp._d = _bt_python_field_one_from_list(field_lc, i) tmp._s = scope def_list.append(tmp) @@ -865,8 +870,8 @@ class ctf: def get_field_list(self): """Return a list of Definitions or None on error.""" - eventScope = self.get_top_level_scope(ctf.scope.EVENT_FIELDS) - streamScope = self.get_top_level_scope(ctf.scope.STREAM_EVENT_CONTEXT) + eventScope = self.get_top_level_scope(CTFReader.scope.EVENT_FIELDS) + streamScope = self.get_top_level_scope(CTFReader.scope.STREAM_EVENT_CONTEXT) def_list = [] if eventScope is not None: @@ -888,7 +893,7 @@ class ctf: If the field is an array or a sequence, return the element at position index, otherwise return None """ - evDef = ctf.Definition.__new__(ctf.Definition) + evDef = CTFReader.Definition.__new__(CTFReader.Definition) try: evDef._d = _bt_ctf_get_index(self._e, field._d, index) except AttributeError: @@ -935,7 +940,7 @@ class ctf: """Definition class. Do not instantiate.""" def __init__(self): - raise NotImplementedError("ctf.Definition cannot be instantiated") + raise NotImplementedError("CTFReader.Definition cannot be instantiated") def __repr__(self): return "Babeltrace Definition: name('{0}'), type({1})".format( @@ -1004,7 +1009,7 @@ class ctf: if array is None: return None - element = ctf.Definition.__new__(ctf.Definition) + element = CTFReader.Definition.__new__(CTFReader.Definition) element._d = _bt_array_index(array, index) if element._d is None: return None @@ -1025,7 +1030,7 @@ class ctf: """ seq = _bt_python_get_sequence_from_def(self._d) if seq is not None: - element = ctf.Definition.__new__(ctf.Definition) + element = CTFReader.Definition.__new__(CTFReader.Definition) element._d = _bt_sequence_index(seq, index) if element._d is not None: return element @@ -1036,7 +1041,7 @@ class ctf: Return the value associated with the field. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_uint64(self._d) @@ -1045,7 +1050,7 @@ class ctf: Return the value associated with the field. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_int64(self._d) @@ -1054,7 +1059,7 @@ class ctf: Return the value associated with the field. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_char_array(self._d) @@ -1063,7 +1068,7 @@ class ctf: Return the value associated with the field. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_string(self._d) @@ -1072,7 +1077,7 @@ class ctf: Return the value associated with the field. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_float(self._d) @@ -1081,7 +1086,7 @@ class ctf: Return the variant's selected field. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_variant(self._d) @@ -1098,7 +1103,7 @@ class ctf: Return the structure's field at position i. If the field does not exist or is not of the type requested, the value returned is undefined. To check if an error occured, - use the ctf.field_error() function after accessing a field. + use the CTFReader.field_error() function after accessing a field. """ return _bt_ctf_get_struct_field_index(self._d, i) @@ -1109,41 +1114,41 @@ class ctf: """ id = self.field_type() value = None - if id == ctf.type_id.STRING: + if id == CTFTypeId.STRING: value = self.get_str() - elif id == ctf.type_id.ARRAY: + elif id == CTFTypeId.ARRAY: value = [] for i in range(self.get_array_len()): element = self.get_array_element_at(i) value.append(element.get_value()) - elif id == ctf.type_id.INTEGER: + elif id == CTFTypeId.INTEGER: if self.get_int_signedness() == 0: value = self.get_uint64() else: value = self.get_int64() - elif id == ctf.type_id.ENUM: + elif id == CTFTypeId.ENUM: value = self.get_enum_str() - elif id == ctf.type_id.SEQUENCE: + elif id == CTFTypeId.SEQUENCE: seq_len = self.get_sequence_len() value = [] for i in range(seq_len): evDef = self.get_sequence_element_at(i) value.append(evDef.get_value()) - elif id == ctf.type_id.FLOAT: + elif id == CTFTypeId.FLOAT: value = self.get_float() - elif id == ctf.type_id.VARIANT: - variant = ctf.Definition.__new__(ctf.Definition) + elif id == CTFTypeId.VARIANT: + variant = CTFReader.Definition.__new__(CTFReader.Definition) variant._d = self.get_variant(); value = variant.get_value() - elif id == ctf.type_id.STRUCT: + elif id == CTFTypeId.STRUCT: value = {} for i in range(self.get_struct_field_count()): - member = ctf.Definition.__new__(ctf.Definition) + member = CTFReader.Definition.__new__(CTFReader.Definition) member._d = self.get_struct_field_at(i); value[member.field_name()] = member.get_value() - if ctf.field_error(): - raise ctf.FieldError("Error occured while accessing field {} of type {}".format(self.field_name(), ctf.type_id.get_type_id_name(self.field_type()))) + if CTFReader.field_error(): + raise CTFReader.FieldError("Error occured while accessing field {} of type {}".format(self.field_name(), CTFTypeId.get_type_name(self.field_type()))) return value def get_scope(self): @@ -1154,7 +1159,7 @@ class ctf: """Event declaration class. Do not instantiate.""" def __init__(self): - raise NotImplementedError("ctf.EventDecl cannot be instantiated") + raise NotImplementedError("CTFReader.EventDecl cannot be instantiated") def __repr__(self): return "Babeltrace EventDecl: name {0}".format(self.get_name()) @@ -1165,7 +1170,7 @@ class ctf: def get_decl_fields(self, scope): """ - Return a list of ctf.FieldDecl + Return a list of CTFReader.FieldDecl Return None on error. """ ptr_list = _by_python_field_decl_listcaller(self._d, scope) @@ -1176,7 +1181,7 @@ class ctf: decl_list = [] i = 0 while True: - tmp = ctf.FieldDecl.__new__(ctf.FieldDecl) + tmp = CTFReader.FieldDecl.__new__(CTFReader.FieldDecl) tmp._d = _bt_python_field_decl_one_from_list( ptr_list, i) @@ -1193,7 +1198,7 @@ class ctf: """Field declaration class. Do not instantiate.""" def __init__(self): - raise NotImplementedError("ctf.FieldDecl cannot be instantiated") + raise NotImplementedError("CTFReader.FieldDecl cannot be instantiated") def __repr__(self): return "Babeltrace FieldDecl: name {0}".format(self.get_name()) @@ -1215,7 +1220,7 @@ class ctf: @staticmethod def get_event_decl_list(trace_handle, context): """ - Return a list of ctf.EventDecl + Return a list of CTFReader.EventDecl Return None on error. """ try: @@ -1234,7 +1239,7 @@ class ctf: decl_list = [] for i in range(count): - tmp = ctf.EventDecl.__new__(ctf.EventDecl) + tmp = CTFReader.EventDecl.__new__(CTFReader.EventDecl) tmp._d = _bt_python_decl_one_from_list(ptr_list, i) decl_list.append(tmp) diff --git a/bindings/python/examples/babeltrace_and_lttng.py b/bindings/python/examples/babeltrace_and_lttng.py index cfd611f6..3a99b1fb 100644 --- a/bindings/python/examples/babeltrace_and_lttng.py +++ b/bindings/python/examples/babeltrace_and_lttng.py @@ -105,7 +105,7 @@ if ret is None: # Iterator setup bp = babeltrace.IterPos(babeltrace.SEEK_BEGIN) -ctf_it = babeltrace.ctf.Iterator(ctx,bp) +ctf_it = babeltrace.CTFReader.Iterator(ctx,bp) # Reading events from trace # and outputting timestamps and event names diff --git a/bindings/python/examples/example-api-test.py b/bindings/python/examples/example-api-test.py index d6b48ffd..570e23e5 100644 --- a/bindings/python/examples/example-api-test.py +++ b/bindings/python/examples/example-api-test.py @@ -34,7 +34,7 @@ if trace_handle is None: raise IOError("Error adding trace") # Listing events -lst = ctf.get_event_decl_list(trace_handle, ctx) +lst = CTFReader.get_event_decl_list(trace_handle, ctx) print("--- Event list ---") for item in lst: print("event : {}".format(item.get_name())) @@ -42,7 +42,7 @@ print("--- Done ---") # Iter trace bp = IterPos(SEEK_BEGIN) -ctf_it = ctf.Iterator(ctx,bp) +ctf_it = CTFReader.Iterator(ctx,bp) event = ctf_it.read_event() while(event is not None): diff --git a/bindings/python/examples/sched_switch.py b/bindings/python/examples/sched_switch.py index 9ab2b10f..1d9f6719 100644 --- a/bindings/python/examples/sched_switch.py +++ b/bindings/python/examples/sched_switch.py @@ -43,7 +43,7 @@ if ret is None: # Setting iterator bp = IterPos(SEEK_BEGIN) -ctf_it = ctf.Iterator(ctx, bp) +ctf_it = CTFReader.Iterator(ctx, bp) # Reading events event = ctf_it.read_event() @@ -51,7 +51,7 @@ while event is not None: while True: if event.get_name() == "sched_switch": # Getting scope definition - sco = event.get_top_level_scope(ctf.scope.STREAM_EVENT_CONTEXT) + sco = event.get_top_level_scope(CTFReader.scope.STREAM_EVENT_CONTEXT) if sco is None: print("ERROR: Cannot get definition scope for sched_switch") break # Next event @@ -65,7 +65,7 @@ while event is not None: if usePID and (pid != long(sys.argv[1])): break # Next event - sco = event.get_top_level_scope(ctf.scope.EVENT_FIELDS) + sco = event.get_top_level_scope(CTFReader.scope.EVENT_FIELDS) # prev_comm field = event.get_field_with_scope(sco, "prev_comm") diff --git a/bindings/python/examples/sequence_test.py b/bindings/python/examples/sequence_test.py index 403bdabf..4c8199c6 100644 --- a/bindings/python/examples/sequence_test.py +++ b/bindings/python/examples/sequence_test.py @@ -36,7 +36,7 @@ if trace_handle is None: raise IOError("Error adding trace") # Listing events -lst = ctf.get_event_decl_list(trace_handle, ctx) +lst = CTFReader.get_event_decl_list(trace_handle, ctx) print("--- Event list ---") for item in lst: print("event : {}".format(item.get_name())) @@ -44,7 +44,7 @@ print("--- Done ---") # Iter trace bp = IterPos(SEEK_BEGIN) -ctf_it = ctf.Iterator(ctx,bp) +ctf_it = CTFReader.Iterator(ctx,bp) event = ctf_it.read_event() while(event is not None): -- 2.34.1