Show
Ignore:
Timestamp:
04/01/08 15:16:49 (8 months ago)
Author:
ryan@…
Branch:
default
Message:

Added: cas/gets, and noreply option on sets

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • jmemcached-core/src/main/java/com/thimbleware/jmemcached/CommandDecoder.java

    r10 r14  
    178178        if (cmd.cmd == Commands.ADD || 
    179179                cmd.cmd == Commands.SET || 
    180                 cmd.cmd == Commands.REPLACE) { 
     180                cmd.cmd == Commands.REPLACE || 
     181                cmd.cmd == Commands.CAS) { 
    181182 
    182183            // if we don't have all the parts, it's malformed 
    183             if (parts.size() != 5) { 
     184            if (parts.size() < 5) { 
    184185                return new SessionStatus(ERROR); 
    185186            } 
     187 
    186188 
    187189            int size = Integer.parseInt(parts.get(4)); 
     
    196198            cmd.element.data_length = size; 
    197199 
     200            // look for cas and "noreply" elements 
     201            if (parts.size() > 5) { 
     202                int noreply = cmd.cmd == Commands.CAS ? 6 : 5; 
     203                if (cmd.cmd == Commands.CAS) { 
     204                    cmd.cas_key = Long.valueOf(parts.get(5)); 
     205                } 
     206 
     207                if (parts.size() == noreply + 1 && parts.get(noreply).equalsIgnoreCase("noreply")) 
     208                    cmd.noreply = true; 
     209 
     210            } 
     211 
    198212            return new SessionStatus(WAITING_FOR_DATA, size, cmd); 
    199213 
    200214        } else if (cmd.cmd == Commands.GET || 
     215                cmd.cmd == Commands.GETS || 
    201216                cmd.cmd == Commands.INCR || 
    202217                cmd.cmd == Commands.DECR ||