Class: Handler
- Inherits:
-
AbstractHandler
- Object
- AbstractHandler
- Handler
- Defined in:
- lib/javonet-ruby-sdk/core/handler/handler.rb,
lib/javonet-ruby-sdk/Binaries/Ruby/Linux/X64/core/handler/handler.rb,
lib/javonet-ruby-sdk/Binaries/Ruby/MacOs/X64/core/handler/handler.rb,
lib/javonet-ruby-sdk/Binaries/Ruby/Windows/X64/core/handler/handler.rb
Instance Method Summary collapse
- #handle_command(command) ⇒ Object
-
#initialize ⇒ Handler
constructor
A new instance of Handler.
- #is_response_array(response) ⇒ Object
- #is_response_nil(response) ⇒ Object
- #is_response_simple_type(response) ⇒ Object
Constructor Details
#initialize ⇒ Handler
Returns a new instance of Handler.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/javonet-ruby-sdk/core/handler/handler.rb', line 32 def initialize super value_handler = ValueHandler.new load_library_handler = LoadLibraryHandler.new invoke_static_method_handler = InvokeStaticMethodHandler.new get_static_field_handler = GetStaticFieldHandler.new get_class_instance_handler = CreateClassInstanceHandler.new set_static_field_handler = SetStaticFieldHandler.new get_type_handler = GetTypeHandler.new invoke_instance_method_handler = InvokeInstanceMethodHandler.new resolve_instance_handler = ResolveInstanceHandler.new casting_handler = CastingHandler.new get_instance_field_handler = GetInstanceFieldHandler.new set_instance_field_handler = SetInstanceFieldHandler.new destruct_reference_handler = DestructReferenceHandler.new array_get_item_handler = ArrayGetItemHandler.new array_get_size_handler = ArrayGetSizeHandler.new array_get_rank_handler = ArrayGetRankHandler.new array_set_item_handler = ArraySetItemHandler.new array_handler = ArrayHandler.new enable_namespace_handler = EnableNamespaceHandler.new enable_type_handler = EnableTypeHandler.new invoke_global_function_handler = InvokeGlobalFunctionHandler.new $handler_dict[CommandType::VALUE] = value_handler $handler_dict[CommandType::LOAD_LIBRARY] = load_library_handler $handler_dict[CommandType::INVOKE_STATIC_METHOD] = invoke_static_method_handler $handler_dict[CommandType::GET_STATIC_FIELD] = get_static_field_handler $handler_dict[CommandType::CREATE_CLASS_INSTANCE] = get_class_instance_handler $handler_dict[CommandType::SET_STATIC_FIELD] = set_static_field_handler $handler_dict[CommandType::GET_TYPE] = get_type_handler $handler_dict[CommandType::INVOKE_INSTANCE_METHOD] = invoke_instance_method_handler $handler_dict[CommandType::REFERENCE] = resolve_instance_handler $handler_dict[CommandType::CAST] = casting_handler $handler_dict[CommandType::GET_INSTANCE_FIELD] = get_instance_field_handler $handler_dict[CommandType::SET_INSTANCE_FIELD] = set_instance_field_handler $handler_dict[CommandType::DESTRUCT_REFERENCE] = destruct_reference_handler $handler_dict[CommandType::ARRAY_GET_ITEM] = array_get_item_handler $handler_dict[CommandType::ARRAY_GET_SIZE] = array_get_size_handler $handler_dict[CommandType::ARRAY_GET_RANK] = array_get_rank_handler $handler_dict[CommandType::ARRAY_SET_ITEM] = array_set_item_handler $handler_dict[CommandType::ARRAY] = array_handler $handler_dict[CommandType::ENABLE_NAMESPACE] = enable_namespace_handler $handler_dict[CommandType::ENABLE_TYPE] = enable_type_handler $handler_dict[CommandType::INVOKE_GLOBAL_FUNCTION] = invoke_global_function_handler end |
Instance Method Details
#handle_command(command) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/javonet-ruby-sdk/core/handler/handler.rb', line 81 def handle_command(command) if command.command_type == CommandType::RETRIEVE_ARRAY response_array = $handler_dict[CommandType::REFERENCE].handle_command(command.payload[0]) return Command.create_array_response(response_array, command.runtime_name) end response = $handler_dict[command.command_type].handle_command(command) if is_response_nil(response) || is_response_simple_type(response) Command.create_response(response, command.runtime_name) elsif response.is_a? Exception return ExceptionSerializer.serialize_exception(response, command) else reference_cache = ReferencesCache.instance guid = reference_cache.cache_reference(response) Command.create_reference(guid, command.runtime_name) end end |
#is_response_array(response) ⇒ Object
106 107 108 |
# File 'lib/javonet-ruby-sdk/core/handler/handler.rb', line 106 def is_response_array(response) response.is_a? Array end |
#is_response_nil(response) ⇒ Object
102 103 104 |
# File 'lib/javonet-ruby-sdk/core/handler/handler.rb', line 102 def is_response_nil(response) response.nil? end |
#is_response_simple_type(response) ⇒ Object
98 99 100 |
# File 'lib/javonet-ruby-sdk/core/handler/handler.rb', line 98 def is_response_simple_type(response) (response.is_a? String or response.is_a? Float or response.is_a? Integer or response.is_a? TrueClass or response.is_a? FalseClass) end |