class Liebre::Actor::RPC::Server::Core

Constants

OPTS

Attributes

callback_class[R]
context[R]
resources[R]
server[R]

Public Class Methods

new(server, resources, context, callback_class) click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 10
def initialize server, resources, context, callback_class
  @server         = server
  @resources      = resources
  @context        = context
  @callback_class = callback_class
end

Public Instance Methods

clean() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 46
def clean
  queue.delete
  exchange.delete
end
failed(meta, error) click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 43
def failed meta, error
end
handle(meta, payload) click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 28
def handle meta, payload
  callback = callback_class.new(server, meta)

  handler.call(payload, meta, callback) do |error|
    callback.failed(error)
  end
end
reply(meta, response, opts = {}) click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 36
def reply meta, response, opts = {}
  opts = opts.merge :routing_key    => meta.reply_to,
                    :correlation_id => meta.correlation_id

  exchange.publish(response, opts)
end
start() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 17
def start
  queue.subscribe(OPTS) do |info, meta, payload|
    server.handle(meta, payload)
  end
  exchange
end
stop() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 24
def stop
  chan.close
end

Private Instance Methods

chan() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 61
def chan
  context.chan
end
exchange() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 57
def exchange
  resources.response_exchange
end
handler() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 65
def handler
  context.handler
end
queue() click to toggle source
# File lib/liebre/actor/rpc/server/core.rb, line 53
def queue
  resources.request_queue
end