Sha256: a089285091e55435aa11d2559208b5c68a64f711ddce86f3e642009a115202b9
Contents?: true
Size: 1.4 KB
Versions: 7
Compression:
Stored size: 1.4 KB
Contents
require 'protobuf/rpc/server' module Protobuf module Rpc module Evented class Server < ::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) @request_buffer = Protobuf::Rpc::Buffer.new(:read) @request = ::Protobuf::Socketrpc::Request.new @response = ::Protobuf::Socketrpc::Response.new @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 } @request_buffer << data @request_data = @request_buffer.data @stats.request_size = @request_buffer.size handle_client if @request_buffer.flushed? end def send_data response_buffer = Protobuf::Rpc::Buffer.new(:write) response_buffer.set_data(@response) @stats.response_size = response_buffer.size log_debug { "[#{log_signature}] sending data: #{response_buffer.inspect}" } super(response_buffer.write) end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems