Class: Protobuf::Rpc::Server

Inherits:
WEBrick::GenericServer
  • Object
show all
Defined in:
lib/protobuf/rpc/server.rb

Instance Method Summary collapse

Constructor Details

#initialize(config = {:Port => 9999}, default = WEBrick::Config::General) ⇒ Server

Returns a new instance of Server.



7
8
9
10
# File 'lib/protobuf/rpc/server.rb', line 7

def initialize(config={:Port => 9999}, default=WEBrick::Config::General)
  super config, default
  setup_handlers
end

Instance Method Details

#get_handler(socket) ⇒ Object



16
17
18
# File 'lib/protobuf/rpc/server.rb', line 16

def get_handler(socket)
  @handlers[socket.readline.strip.to_sym]
end

#run(socket) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/protobuf/rpc/server.rb', line 20

def run(socket)
  handler = get_handler socket
  request = handler.request_class.new
  request.parse_from socket
  response = handler.response_class.new
  begin
    handler.process_request request, response
  rescue StandardError => ex
    @logger.error ex
  ensure
    begin
      response.serialize_to socket
    rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ENOTCONN => ex
      @logger.error ex
    end
  end
end

#setup_handlersObject



12
13
14
# File 'lib/protobuf/rpc/server.rb', line 12

def setup_handlers
  @handlers = {}
end