Beispiel #1
0
    def event_handler(parser, event_type, event_data, arg):
        parser_obj.record_ready = False

        if event_type == _cparser_defs.TRACE_PARSER_FOUND_METADATA:
            if parser_obj._event_handler:
                parser_obj._event_handler('metadata_updated')
            return

        if event_type == _cparser_defs.TRACE_PARSER_OPERATION_IN_PROGRESS:
            if parser_obj._event_handler:
                progress_status = cast(c_void_p(event_data), POINTER(_cparser_defs.operation_progress_status_s))
                parser_obj._event_handler('operation_in_progress',
                                          records_processed = progress_status.contents.records_processed,
                                          current_offset = progress_status.contents.current_offset)
                return

        if event_type == _cparser_defs.TRACE_PARSER_UNKNOWN_RECORD_ENCOUNTERED:
            if parser_obj._event_handler:
                parser_obj._event_handler('unknown_record')
                return
            

        if event_type not in (_cparser_defs.TRACE_PARSER_COMPLETE_TYPED_RECORD_PROCESSED, _cparser_defs.TRACE_PARSER_MATCHED_RECORD):
            return


        complete_record_ptr = cast(c_void_p(event_data), POINTER(_cparser_defs.parser_complete_typed_record))
        formatted_record = create_string_buffer(1024 * 10)
        format_length = c_int()
        _traces_so.TRACE_PARSER__format_typed_record(parser, complete_record_ptr.contents.buffer, complete_record_ptr.contents.record, formatted_record, 1024 * 10, byref(format_length))
        parser_obj.record_ready = True
        parser_obj.formatted_record = formatted_record.value
        record_copy = _cparser_defs.trace_record()
        pointer(record_copy)[0] = complete_record_ptr.contents.record[0]
        parser_obj.raw_record = record_copy
Beispiel #2
0
    def event_handler(parser, event_type, event_data, arg):
        parser_obj.record_ready = False
        if event_type not in (_cparser_defs.TRACE_PARSER_COMPLETE_TYPED_RECORD_PROCESSED, _cparser_defs.TRACE_PARSER_MATCHED_RECORD):
            return

        complete_record_ptr = cast(c_void_p(event_data), POINTER(_cparser_defs.parser_complete_typed_record))
        formatted_record = create_string_buffer(1024 * 10)
        format_length = c_int()
        _traces_so.TRACE_PARSER__format_typed_record(parser, complete_record_ptr.contents.buffer, complete_record_ptr.contents.record, formatted_record, 1024 * 10, byref(format_length))
        parser_obj.record_ready = True
        parser_obj.formatted_record = formatted_record.value
        record_copy = _cparser_defs.trace_record()
        pointer(record_copy)[0] = complete_record_ptr.contents.record[0]
        parser_obj.raw_record = record_copy
Beispiel #3
0
    def event_handler(parser, event_type, event_data, arg):
        parser_obj.record_ready = False

        if event_type == _cparser_defs.TRACE_PARSER_FOUND_METADATA:
            if parser_obj._event_handler:
                parser_obj._event_handler('metadata_updated')
            return

        if event_type == _cparser_defs.TRACE_PARSER_OPERATION_IN_PROGRESS:
            if parser_obj._event_handler:
                progress_status = cast(
                    c_void_p(event_data),
                    POINTER(_cparser_defs.operation_progress_status_s))
                parser_obj._event_handler(
                    'operation_in_progress',
                    records_processed=progress_status.contents.
                    records_processed,
                    current_offset=progress_status.contents.current_offset)
                return

        if event_type == _cparser_defs.TRACE_PARSER_UNKNOWN_RECORD_ENCOUNTERED:
            if parser_obj._event_handler:
                parser_obj._event_handler('unknown_record')
                return

        if event_type not in (
                _cparser_defs.TRACE_PARSER_COMPLETE_TYPED_RECORD_PROCESSED,
                _cparser_defs.TRACE_PARSER_MATCHED_RECORD):
            return

        complete_record_ptr = cast(
            c_void_p(event_data),
            POINTER(_cparser_defs.parser_complete_typed_record))
        formatted_record = create_string_buffer(1024 * 10)
        format_length = c_int()
        _traces_so.TRACE_PARSER__format_typed_record(
            parser, complete_record_ptr.contents.buffer,
            complete_record_ptr.contents.record, formatted_record, 1024 * 10,
            byref(format_length))
        parser_obj.record_ready = True
        parser_obj.formatted_record = formatted_record.value
        record_copy = _cparser_defs.trace_record()
        pointer(record_copy)[0] = complete_record_ptr.contents.record[0]
        parser_obj.raw_record = record_copy

        return 0