public final CachedData encode(Object o) { CachedData result = serializingTranscoder.encode(o); byte[] realData = result.getData(); int flag = result.getFlag(); byte[] flagBytes = serializingTranscoder.getTranscoderUtils().encodeInt(flag); byte[] compisiteData = new byte[4 + realData.length]; System.arraycopy(flagBytes, 0, compisiteData, 0, 4); System.arraycopy(realData, 0, compisiteData, 4, realData.length); result.setData(compisiteData); return result; }
public final Object decode(CachedData d) { byte[] compositeData = d.getData(); if (compositeData.length <= 4) throw new MemcachedDecodeException( "There are no four bytes before value for TokyoTyrantTranscoder"); byte[] flagBytes = new byte[4]; byte[] realData = new byte[compositeData.length - 4]; System.arraycopy(compositeData, 0, flagBytes, 0, 4); System.arraycopy(compositeData, 4, realData, 0, compositeData.length - 4); int flag = serializingTranscoder.getTranscoderUtils().decodeInt(flagBytes); d.setFlag(flag); if ((flag & SerializingTranscoder.COMPRESSED) != 0) { realData = serializingTranscoder.decompress(realData); } flag = flag & SerializingTranscoder.SPECIAL_MASK; return serializingTranscoder.decode0(d, realData, flag); }
public final CachedData encode(Object o) { CachedData result = serializingTranscoder.encode(o); byte[] realData = result.getData(); int flag = result.getFlag(); byte[] flagBytes = serializingTranscoder.getTranscoderUtils().encodeInt(flag); byte[] compisiteData = new byte[4 + realData.length]; System.arraycopy(flagBytes, 0, compisiteData, 0, 4); System.arraycopy(realData, 0, compisiteData, 4, realData.length); result.setData(compisiteData); return result; }
public final Object decode(CachedData d) { byte[] compositeData = d.getData(); if (compositeData.length <= 4) throw new MemcachedDecodeException( "There are no four bytes before value for TokyoTyrantTranscoder"); byte[] flagBytes = new byte[4]; byte[] realData = new byte[compositeData.length - 4]; System.arraycopy(compositeData, 0, flagBytes, 0, 4); System.arraycopy(compositeData, 4, realData, 0, compositeData.length - 4); int flag = serializingTranscoder.getTranscoderUtils().decodeInt(flagBytes); d.setFlag(flag); if ((flag & SerializingTranscoder.COMPRESSED) != 0) { realData = serializingTranscoder.decompress(realData); } flag = flag & SerializingTranscoder.SPECIAL_MASK; return serializingTranscoder.decode0(d, realData, flag); }