Class: Wamp::Client::Request::Call
- Defined in:
- lib/wamp/client/request/call.rb
Instance Attribute Summary
Attributes inherited from Base
#on_success, #requests, #send_message_callback, #session
Instance Method Summary collapse
-
#cancel(request_id, mode = 'skip') ⇒ Object
Method specific to this request that will cancel it.
- #create_request(request_id, procedure, args = nil, kwargs = nil, options = {}, &callback) ⇒ Object
- #process_error(message, lookup) ⇒ Object
- #process_success(message, lookup) ⇒ Object
Methods inherited from Base
#error, #generate_id, #initialize, #request, #success
Constructor Details
This class inherits a constructor from Wamp::Client::Request::Base
Instance Method Details
#cancel(request_id, mode = 'skip') ⇒ Object
Method specific to this request that will cancel it
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/wamp/client/request/call.rb', line 32 def cancel(request_id, mode='skip') # If the request is still in flight if self.requests[request_id] # Create the message = Message::Cancel.new(request_id, { mode: mode }) # Send it () end end |
#create_request(request_id, procedure, args = nil, kwargs = nil, options = {}, &callback) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/wamp/client/request/call.rb', line 45 def create_request(request_id, procedure, args=nil, kwargs=nil, ={}, &callback) # Create the lookup lookup = {p: procedure, a: args, k: kwargs, o: , c: callback} # Create the message = Message::Call.new(request_id, , procedure, args, kwargs) # Return [lookup, ] end |
#process_error(message, lookup) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/wamp/client/request/call.rb', line 89 def process_error(, lookup) if lookup # Get the params procedure = lookup[:p] callback = lookup[:c] # Create the details details = .details || {} details[:procedure] = procedure unless details[:procedure] details[:type] = 'call' # Return the values [callback, details] else [nil, nil] end end |
#process_success(message, lookup) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/wamp/client/request/call.rb', line 57 def process_success(, lookup) if lookup # Get the params procedure = lookup[:p] = lookup[:o] || {} callback = lookup[:c] # Create the details details = .details || {} details[:procedure] = procedure unless details[:procedure] details[:type] = 'call' # Set the should keep flag if this is a progress message should_keep = details[:progress] # Only return the information if not progress or receive progress is true if not details[:progress] or (details[:progress] and [:receive_progress]) # Create the response result = Response::CallResult.() # Return the values [callback, result.to_hash, details, should_keep] else [nil, nil, nil, should_keep] end else [nil, nil, nil] end end |