Class: Protobuf::Rpc::Server
- Inherits:
-
WEBrick::GenericServer
- Object
- WEBrick::GenericServer
- Protobuf::Rpc::Server
- Defined in:
- lib/protobuf/rpc/server.rb
Instance Method Summary collapse
- #get_handler(socket) ⇒ Object
-
#initialize(config = {:Port => 9999}, default = WEBrick::Config::General) ⇒ Server
constructor
A new instance of Server.
- #run(socket) ⇒ Object
- #setup_handlers ⇒ Object
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_handlers ⇒ Object
12 13 14 |
# File 'lib/protobuf/rpc/server.rb', line 12 def setup_handlers @handlers = {} end |