class DatTCP::ServerSpy

Attributes

backlog_size[R]
client_file_descriptors[R]
file_descriptor[R]
halt_called[RW]
ip[R]
listen_called[RW]
logger[R]
num_workers[R]
options[R]
pause_called[RW]
port[R]
shutdown_timeout[R]
start_called[RW]
stop_called[RW]
stop_listen_called[RW]
waiting_for_halt[R]
waiting_for_pause[R]
waiting_for_stop[R]
worker_class[R]
worker_params[R]

Public Class Methods

new(worker_class, options = nil) click to toggle source
# File lib/dat-tcp/server_spy.rb, line 18
def initialize(worker_class, options = nil)
  @worker_class = worker_class
  if !@worker_class.kind_of?(Class) || !@worker_class.include?(DatTCP::Worker)
    raise ArgumentError, "worker class must include `#{DatTCP::Worker}`"
  end

  server_ns = DatTCP::Server
  @options          = options || {}
  @backlog_size     = @options[:backlog_size]     || server_ns::DEFAULT_BACKLOG_SIZE
  @shutdown_timeout = @options[:shutdown_timeout] || server_ns::DEFAULT_SHUTDOWN_TIMEOUT
  @num_workers      = (@options[:num_workers]     || server_ns::DEFAULT_NUM_WORKERS).to_i
  @logger           = @options[:logger]
  @worker_params    = @options[:worker_params]

  @ip                      = nil
  @port                    = nil
  @file_descriptor         = nil
  @client_file_descriptors = []

  @waiting_for_pause = nil
  @waiting_for_stop  = nil
  @waiting_for_halt  = nil

  @listen_called      = false
  @stop_listen_called = false
  @start_called       = false
  @pause_called       = false
  @stop_called        = false
  @halt_called        = false
end

Public Instance Methods

halt(wait = false) click to toggle source
# File lib/dat-tcp/server_spy.rb, line 86
def halt(wait = false)
  @waiting_for_halt = wait
  @halt_called = true
end
listen(*args) click to toggle source
# File lib/dat-tcp/server_spy.rb, line 57
def listen(*args)
  case args.size
  when 2
    @ip, @port = args
  when 1
    @file_descriptor = args.first
  end
  @listen_called = true
end
listening?() click to toggle source
# File lib/dat-tcp/server_spy.rb, line 49
def listening?
  @listen_called && !@stop_listen_called
end
pause(wait = false) click to toggle source
# File lib/dat-tcp/server_spy.rb, line 76
def pause(wait = false)
  @waiting_for_pause = wait
  @pause_called = true
end
running?() click to toggle source
# File lib/dat-tcp/server_spy.rb, line 53
def running?
  @start_called && !(@pause_called || @stop_called || @halt_called)
end
start(passed_client_fds = nil) click to toggle source
# File lib/dat-tcp/server_spy.rb, line 71
def start(passed_client_fds = nil)
  @client_file_descriptors = passed_client_fds || []
  @start_called = true
end
stop(wait = false) click to toggle source
# File lib/dat-tcp/server_spy.rb, line 81
def stop(wait = false)
  @waiting_for_stop = wait
  @stop_called = true
end
stop_listen() click to toggle source
# File lib/dat-tcp/server_spy.rb, line 67
def stop_listen
  @stop_listen_called = true
end