mooncached.lua

changeset 13
db66a09dc0b6
parent 12
fb941ed514c6
child 17
5bede08f2f55
--- a/mooncached.lua	Sun Aug 01 12:16:06 2010 +0100
+++ b/mooncached.lua	Sun Aug 01 12:17:12 2010 +0100
@@ -84,6 +84,29 @@
 	return true;
 end
 
+function command_handlers.delete(conn, params)
+	local key, keyend = params:match("^(%S+)()");
+	local time, reply = params:match(" (%d+)", keyend), params:match(" (noreply)$", keyend);
+	time, reply = tonumber(time), reply ~= "noreply";
+	local ok, err;
+	if not key then
+		ok, err = false, "Unable to determine key from request";
+	else
+		ok, err = cache:delete(key, time);
+		if ok then
+			if err then
+				conn:write("DELETED\r\n");
+			else
+				conn:write("NOT_FOUND\r\n");
+			end
+		end
+	end
+	if not reply then
+		return nil;
+	end
+	return ok, err;
+end
+
 function command_handlers.version(conn)
 	conn:write("VERSION Mooncached 0.1\r\n");
 	return true;

mercurial