Class: CarbonCopy::CacheServer

Inherits:
Object
  • Object
show all
Defined in:
lib/carbon-copy/cache_server.rb

Instance Method Summary collapse

Constructor Details

#initialize(port, request_cacher) ⇒ CacheServer

Returns a new instance of CacheServer.



8
9
10
11
# File 'lib/carbon-copy/cache_server.rb', line 8

def initialize(port, request_cacher)
  @port = port
  @request_cacher = request_cacher
end

Instance Method Details

#handle(session) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/carbon-copy/cache_server.rb', line 21

def handle(session)
  request = Request.new(session)
  request.parse
  response = @request_cacher.connect(request)
  session.write(response)
  session.close
rescue => e
  p e.message
  p e.backtrace
end

#runObject



13
14
15
16
17
18
19
# File 'lib/carbon-copy/cache_server.rb', line 13

def run
  webserver = TCPServer.new("127.0.0.1", @port)
  puts "Running Carbon Copy on localhost port #{@port}"
  while (session = webserver.accept)
    Thread.new(session, &method(:handle))
  end
end