Module: Wampus::Rpc::ServerExt
- Extended by:
- ActiveSupport::Concern
- Included in:
- Servers::WampCra
- Defined in:
- lib/wampus/rpc/server_ext.rb
Defined Under Namespace
Modules: ClassMethods
Instance Attribute Summary collapse
-
#rpcs ⇒ Object
readonly
Returns the value of attribute rpcs.
Instance Method Summary collapse
- #handle_call_msg(connection, data) ⇒ Object
- #initialize(*args) ⇒ Object
- #on_after_call_error(connection, error) ⇒ Object
- #on_after_call_success(connection, result) ⇒ Object
- #on_after_send_call_error(connection, error_msg) ⇒ Object
-
#on_before_call(connection, call_id, uri, args, call_exists) ⇒ Object
– RPC Hooks.
Instance Attribute Details
#rpcs ⇒ Object (readonly)
Returns the value of attribute rpcs.
8 9 10 |
# File 'lib/wampus/rpc/server_ext.rb', line 8 def rpcs @rpcs end |
Instance Method Details
#handle_call_msg(connection, data) ⇒ Object
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 |
# File 'lib/wampus/rpc/server_ext.rb', line 43 def handle_call_msg(connection, data) call_id, proc_uri, *args = data uri = connection.resolve_prefix proc_uri handler = rpcs[uri] rpc_call_exists = rpcs.has_key?(uri) uri, args = on_before_call connection, call_id, uri, args, rpc_call_exists unless rpc_call_exists raise Wampus::Errors::CallError.new(Wampus::Protocols::Wamp::URI_ERROR+'NoSuchRPCEndpoint', 'Missing Method') end begin if handler[0] result = handler[0].send handler[1], connection, *args elsif handler[1].is_a? Proc result = handler[1].call connection, *args end result = on_after_call_success connection, result connection.write call_result_msg call_id, result rescue => error error = on_after_call_error connection, error msg = call_error_msg call_id, *error.to_call_error connection.write msg on_after_send_call_error connection, msg end end |
#initialize(*args) ⇒ Object
10 11 12 13 |
# File 'lib/wampus/rpc/server_ext.rb', line 10 def initialize(*args) @rpcs = {} super(*args) if defined? super end |
#on_after_call_error(connection, error) ⇒ Object
81 82 83 84 85 86 |
# File 'lib/wampus/rpc/server_ext.rb', line 81 def on_after_call_error(connection, error) unless error.is_a? Wampus::Errors::CallError error = Wampus::Errors::CallError.new(Wampus::Protocols::Wamp::URI_ERROR+'generic', "RPC Call Error: #{error.}") end error end |
#on_after_call_success(connection, result) ⇒ Object
77 78 79 |
# File 'lib/wampus/rpc/server_ext.rb', line 77 def on_after_call_success(connection, result) result end |
#on_after_send_call_error(connection, error_msg) ⇒ Object
88 89 |
# File 'lib/wampus/rpc/server_ext.rb', line 88 def on_after_send_call_error(connection, error_msg) end |
#on_before_call(connection, call_id, uri, args, call_exists) ⇒ Object
– RPC Hooks
73 74 75 |
# File 'lib/wampus/rpc/server_ext.rb', line 73 def on_before_call(connection, call_id, uri, args, call_exists) [uri, args] end |