Sha256: ee381e2c7b943904a97d2242cc204d7f2d3721d40028ad951d3a99c623546a4e

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

module Af::TCPCommand
  class Client
    include ::Af::Application::Proxy

    attr_reader :client, :server_hostname, :server_port

    def initialize(server_hostname, server_port)
      @server_hostname = server_hostname
      @server_port = server_port
      @client = TCPSocket.new(server_hostname, server_port)
    end

    def logger
      return af_logger(self.class.name)
    end

    def command_reader
      return client.readline.chomp
    end

    def command_dispatcher(line)
      logger.debug_fine "process command: #{line}"
    end

    def reply_to_server(line)
      client.write("#{line}\n")
    end

    def ready
      reply_to_server("ready")
    end

    def serve
      while true
        logger.debug_medium "READY!"
        ready
        begin
          line = command_reader
          logger.debug_fine "working on: #{line}"
          command_dispatcher(line)
        rescue EOFError
          logger.warn "master closed connection: #{client.inspect}"
          client.close
          break
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
fiksu-af-1.1.6 lib/fiksu-af/tcp_command/client.rb
fiksu-af-1.1.5 lib/fiksu-af/tcp_command/client.rb
fiksu-af-1.1.4 lib/fiksu-af/tcp_command/client.rb
fiksu-af-1.1.3 lib/fiksu-af/tcp_command/client.rb
fiksu-af-1.1.2 lib/fiksu-af/tcp_command/client.rb
fiksu-af-1.1.1 lib/fiksu-af/tcp_command/client.rb
fiksu-af-1.1.0 lib/fiksu-af/tcp_command/client.rb