# File lib/protocols/memcache.rb, line 140
140:       def process_cmd line
141:         case line.strip
142:         when /^VALUE\s+(.+?)\s+(\d+)\s+(\d+)/ # VALUE <key> <flags> <bytes>
143:           bytes = Integer($3)
144:           # set_binary_mode bytes+2
145:           # @cur_key = $1
146:           if @buffer.size >= bytes + 2
147:             @values[$1] = @buffer.slice!(0,bytes)
148:             @buffer.slice!(0,2) # \r\n
149:           else
150:             raise ParserError
151:           end
152: 
153:         when Cend # END
154:           if entry = @get_cbs.shift
155:             keys, cb = entry
156:             cb.call(@values)
157:           end
158:           @values = {}
159: 
160:         when Cstored # STORED
161:           if cb = @set_cbs.shift
162:             cb.call(true)
163:           end
164: 
165:         when Cdeleted # DELETED
166:           if cb = @del_cbs.shift
167:             cb.call(true)
168:           end
169: 
170:         when Cunknown # NOT_FOUND
171:           if cb = @del_cbs.shift
172:             cb.call(false)
173:           end
174: 
175:         else
176:           p [:MEMCACHE_UNKNOWN, line]
177:         end
178:       end