         # 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