python/rocketmq/v5/model/callback_result.py (77 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from enum import Enum class CallbackResultType(Enum): ASYNC_SEND_CALLBACK_RESULT = 1 ASYNC_RECEIVE_CALLBACK_RESULT = 2 ASYNC_ACK_CALLBACK_RESULT = 3 ASYNC_CHANGE_INVISIBLE_DURATION_RESULT = 4 ASYNC_SEND_CALLBACK_EXCEPTION = 5 ASYNC_RECEIVE_CALLBACK_EXCEPTION = 6 ASYNC_ACK_CALLBACK_EXCEPTION = 7 ASYNC_CHANGE_INVISIBLE_DURATION_EXCEPTION = 8 END_CALLBACK_THREAD_RESULT = 100 class CallbackResult: def __init__(self): self.__future = None self.__result = None self.__result_type = None self.__is_success = None @staticmethod def callback_result(future, result, success): callback_result = CallbackResult() callback_result.__future = future callback_result.__result = result callback_result.__is_success = success return callback_result @staticmethod def async_send_callback_result(future, result, success=True): callback_result = CallbackResult.callback_result(future, result, success) callback_result.__result_type = ( CallbackResultType.ASYNC_SEND_CALLBACK_RESULT if success else CallbackResultType.ASYNC_SEND_CALLBACK_EXCEPTION ) return callback_result @staticmethod def async_receive_callback_result(future, result, success=True): callback_result = CallbackResult.callback_result(future, result, success) callback_result.__result_type = ( CallbackResultType.ASYNC_ACK_CALLBACK_RESULT if success else CallbackResultType.ASYNC_ACK_CALLBACK_EXCEPTION ) return callback_result @staticmethod def async_ack_callback_result(future, result, success=True): callback_result = CallbackResult.callback_result(future, result, success) callback_result.__result_type = ( CallbackResultType.ASYNC_RECEIVE_CALLBACK_RESULT if success else CallbackResultType.ASYNC_RECEIVE_CALLBACK_EXCEPTION ) return callback_result @staticmethod def async_change_invisible_duration_callback_result(future, result, success=True): callback_result = CallbackResult.callback_result(future, result, success) callback_result.__result_type = ( CallbackResultType.ASYNC_CHANGE_INVISIBLE_DURATION_RESULT if success else CallbackResultType.ASYNC_CHANGE_INVISIBLE_DURATION_EXCEPTION ) return callback_result @staticmethod def end_callback_thread_result(): callback_result = CallbackResult() callback_result.__result_type = CallbackResultType.END_CALLBACK_THREAD_RESULT return callback_result """ @property """ @property def future(self): return self.__future @property def result(self): return self.__result @property def result_type(self): return self.__result_type @property def is_success(self): return self.__is_success