lib/protobuf/rpc/servers/evented_server.rb
require 'protobuf/rpc/server' module Protobuf module Rpc class EventedServer < EventMachine::Connection include Protobuf::Rpc::Server include Protobuf::Logger::LogMethods # Initialize a new read buffer for storing client request info def post_init log_debug '[server] Post init, new read buffer created' @stats = Protobuf::Rpc::Stat.new(:SERVER, true) @stats.client = Socket.unpack_sockaddr_in(get_peername) @buffer = Protobuf::Rpc::Buffer.new(:read) @did_respond = false end # Receive a chunk of data, potentially flushed to handle_client def receive_data(data) log_debug '[server] receive_data: %s' % data @buffer << data handle_client if @buffer.flushed? end end end end