lib/memcached_test/server.rb in memcached_test-0.1.0 vs lib/memcached_test/server.rb in memcached_test-1.0.0
- old
+ new
@@ -2,19 +2,20 @@
require_relative 'memcached'
require_relative 'commands_format'
module MemcachedTest
class Server
+ attr_reader :server_socket
+
def initialize(socket_address, socket_port)
@server_socket = TCPServer.open(socket_address, socket_port)
@memcached = Memcached.new
end
def run
loop{
client_connection = @server_socket.accept
- #foreach client that connects
Thread.start(client_connection) do |conn|
puts "Connection established #{conn}"
while input = conn.gets
input = input.chomp
@@ -58,86 +59,55 @@
client.puts ("END\r\n")
elsif resultados != [] && !resultados.is_a?(Array)
client.puts ("VALUE #{resultados[0]} #{resultados[1]} #{resultados[3]} #{resultado[4]}\r\n#{resultados[5]}\r\n")
client.puts ("END\r\n")
else
- client.append ("NOT_FOUND\r\n")
+ client.puts ("NOT_FOUND\r\n")
end
when Commands_format.set
- key = $~['key']
- flags = $~['flags']
- exptime = $~['exptime']
- bytes = $~['bytes']
- noreply = !$~['noreply'].nil?
- data = $~['data']
-
+ key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~)
+ data = client.gets.chomp
response = @memcached.set(key, flags, exptime, bytes, data)
client.puts response unless noreply
when Commands_format.add
- key = $~['key']
- flags = $~['flags']
- exptime = $~['exptime']
- bytes = $~['bytes']
- noreply = !$~['noreply'].nil?
- data = $~['data']
-
+ key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~)
+ data = client.gets.chomp
response = @memcached.add(key, flags, exptime, bytes, data)
client.puts response unless noreply
when Commands_format.replace
- key = $~['key']
- flags = $~['flags']
- exptime = $~['exptime']
- bytes = $~['bytes']
- noreply = !$~['noreply'].nil?
- data = $~['data']
-
+ key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~)
+ data = client.gets.chomp
response = @memcached.replace(key, flags, exptime, bytes, data)
client.puts response unless noreply
when Commands_format.append
- key = $~['key']
- flags = $~['flags']
- exptime = $~['exptime']
- bytes = $~['bytes']
- noreply = !$~['noreply'].nil?
- data = $~['data']
-
- response = @memcached.append(key, flags, exptime, bytes, data)
+ key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~)
+ data = client.gets.chomp
+ response = @memcached.append(key, bytes, data)
client.puts response unless noreply
when Commands_format.prepend
- key = $~['key']
- flags = $~['flags']
- exptime = $~['exptime']
- bytes = $~['bytes']
- noreply = !$~['noreply'].nil?
- data = $~['data']
-
- response = @memcached.prepend(key, flags, exptime, bytes, data)
+ key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~)
+ data = client.gets.chomp
+ response = @memcached.prepend(key, bytes, data)
client.puts response unless noreply
when Commands_format.cas
- key = $~['key']
- flags = $~['flags']
- exptime = $~['exptime']
- bytes = $~['bytes']
- cas = $~['cas']
- noreply = !$~['noreply'].nil?
- data = $~['data']
-
+ key, flags, exptime, bytes, noreply, cas = self.pass_parameters($~)
+ data = client.gets.chomp
response = @memcached.cas(key, flags, exptime, bytes, cas, data)
client.puts response unless noreply
when Commands_format.flush_all
response = @memcached.flush_all()
client.puts response if $~['noreply'].nil?
else
- client.puts "Invalid command, please retry"
+ client.puts "ERROR\r\n"
end
end
def purge_expired_keys(interval_time)
loop{
@@ -145,7 +115,16 @@
@memcached.flush_all()
puts("----------- Expired keys deleted -----------")
}
end
+ def pass_parameters(reg_exp)
+ key = reg_exp['key']
+ flags = reg_exp['flags'] unless reg_exp['command'] == 'append' || reg_exp['command'] == 'prepend'
+ exptime = reg_exp['exptime'] unless reg_exp['command'] == 'append' || reg_exp['command'] == 'prepend'
+ bytes = reg_exp['bytes']
+ noreply = !reg_exp['noreply'].nil?
+ cas = reg_exp['cas'] if reg_exp['command'] == 'cas'
+ return key, flags, exptime, bytes, noreply, cas
+ end
end
end
\ No newline at end of file