Class: Tamashii::Agent::Networking::RequestObserver

Inherits:
Object
  • Object
show all
Includes:
Common::Loggable
Defined in:
lib/tamashii/agent/networking/request_observer.rb

Instance Method Summary collapse

Methods included from Common::Loggable

#display_name, #logger, #progname

Constructor Details

#initialize(networking, id, ev_type, ev_body, future) ⇒ RequestObserver

Returns a new instance of RequestObserver.



9
10
11
12
13
14
15
# File 'lib/tamashii/agent/networking/request_observer.rb', line 9

def initialize(networking, id, ev_type, ev_body, future)
  @networking = networking
  @id = id
  @ev_type = ev_type
  @ev_body = ev_body
  @future = future
end

Instance Method Details

#update(time, ev_data, reason) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/tamashii/agent/networking/request_observer.rb', line 17

def update(time, ev_data, reason)
  if @future.fulfilled?
    res_ev_type = ev_data[:ev_type]
    res_ev_body = ev_data[:ev_body]
    case res_ev_type
    when Type::RFID_RESPONSE_JSON
      logger.debug "Handled: #{res_ev_type}: #{res_ev_body}"
      @networking.handle_card_result(JSON.parse(res_ev_body))
    else
      logger.warn "Unhandled packet result: #{res_ev_type}: #{res_ev_body}"
    end
  else
    logger.error "#{@id} Failed with #{reason}"
    @networking.on_request_timeout(@ev_type, @ev_body)
  end
end