X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Ffield_path.py;h=d16f0f36f6f6130f6157f908e26abe0c5e9f2c7c;hb=e5914347c8eea0f26c07348d0ac64dbe020de44a;hp=2191171e02055317cc331551888bf32c45a4dc37;hpb=578e048b5debf169e286e5b5cc747b5d6c16886d;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/field_path.py b/src/bindings/python/bt2/bt2/field_path.py index 2191171e..d16f0f36 100644 --- a/src/bindings/python/bt2/bt2/field_path.py +++ b/src/bindings/python/bt2/bt2/field_path.py @@ -1,34 +1,17 @@ -# The MIT License (MIT) +# SPDX-License-Identifier: MIT # # Copyright (c) 2018 Francis Deslauriers -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. import collections -from bt2 import native_bt, object +from bt2 import native_bt +from bt2 import object as bt2_object -class Scope: - PACKET_CONTEXT = native_bt.SCOPE_PACKET_CONTEXT - EVENT_COMMON_CONTEXT = native_bt.SCOPE_EVENT_COMMON_CONTEXT - EVENT_SPECIFIC_CONTEXT = native_bt.SCOPE_EVENT_SPECIFIC_CONTEXT - EVENT_PAYLOAD = native_bt.SCOPE_EVENT_PAYLOAD +class FieldPathScope: + PACKET_CONTEXT = native_bt.FIELD_PATH_SCOPE_PACKET_CONTEXT + EVENT_COMMON_CONTEXT = native_bt.FIELD_PATH_SCOPE_EVENT_COMMON_CONTEXT + EVENT_SPECIFIC_CONTEXT = native_bt.FIELD_PATH_SCOPE_EVENT_SPECIFIC_CONTEXT + EVENT_PAYLOAD = native_bt.FIELD_PATH_SCOPE_EVENT_PAYLOAD class _FieldPathItem: @@ -48,9 +31,18 @@ class _CurrentArrayElementFieldPathItem(_FieldPathItem): pass -class _FieldPath(object._SharedObject, collections.abc.Iterable): - _get_ref = staticmethod(native_bt.field_path_get_ref) - _put_ref = staticmethod(native_bt.field_path_put_ref) +class _CurrentOptionContentFieldPathItem(_FieldPathItem): + pass + + +class _FieldPathConst(bt2_object._SharedObject, collections.abc.Iterable): + @staticmethod + def _get_ref(ptr): + native_bt.field_path_get_ref(ptr) + + @staticmethod + def _put_ref(ptr): + native_bt.field_path_put_ref(ptr) @property def root_scope(self): @@ -69,14 +61,16 @@ class _FieldPath(object._SharedObject, collections.abc.Iterable): idx = native_bt.field_path_item_index_get_index(item_ptr) yield _IndexFieldPathItem(idx) elif item_type == native_bt.FIELD_PATH_ITEM_TYPE_CURRENT_ARRAY_ELEMENT: - yield _CurrentArrayElementFieldPathItem() + yield _CurrentArrayElementFieldPathItem() + elif item_type == native_bt.FIELD_PATH_ITEM_TYPE_CURRENT_OPTION_CONTENT: + yield _CurrentOptionContentFieldPathItem() else: assert False _SCOPE_TO_OBJ = { - native_bt.SCOPE_PACKET_CONTEXT: Scope.PACKET_CONTEXT, - native_bt.SCOPE_EVENT_COMMON_CONTEXT: Scope.EVENT_COMMON_CONTEXT, - native_bt.SCOPE_EVENT_SPECIFIC_CONTEXT: Scope.EVENT_SPECIFIC_CONTEXT, - native_bt.SCOPE_EVENT_PAYLOAD: Scope.EVENT_PAYLOAD + native_bt.FIELD_PATH_SCOPE_PACKET_CONTEXT: FieldPathScope.PACKET_CONTEXT, + native_bt.FIELD_PATH_SCOPE_EVENT_COMMON_CONTEXT: FieldPathScope.EVENT_COMMON_CONTEXT, + native_bt.FIELD_PATH_SCOPE_EVENT_SPECIFIC_CONTEXT: FieldPathScope.EVENT_SPECIFIC_CONTEXT, + native_bt.FIELD_PATH_SCOPE_EVENT_PAYLOAD: FieldPathScope.EVENT_PAYLOAD, }