Mercurial > hg > Papers > 2015 > sugi-master
diff paper/source/CreateByteBuffer.java @ 9:7e1112025b3a
modify chapter4
author | sugi |
---|---|
date | Thu, 08 Jan 2015 20:36:01 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/source/CreateByteBuffer.java Thu Jan 08 20:36:01 2015 +0900 @@ -0,0 +1,36 @@ +public ByteBuffer convert() { + ByteBuffer buf = null; + MessagePack msg = SingletonMessage.getInstance(); + try { + byte[] header = null; + byte[] data = null; + byte[] dataSize = null; + boolean serialized = false; + + switch (type) { + case UPDATE: + case PUT: + case REPLY: + data = msg.write(rData.getObj()); + CommandMessage cm = new CommandMessage(type.id, seq, key, false, serialized); + + header = msg.write(cm); + dataSize = msg.write(data.length); + buf = ByteBuffer.allocate(header.length+dataSize.length+data.length); + buf.put(header); + buf.put(dataSize); + buf.put(data); + break; + default: + header = msg.write(new CommandMessage(type.id, seq, key, quickFlag, false); + buf = ByteBuffer.allocate(header.length); + buf.put(header); + break; + } + + buf.flip(); + } catch (IOException e) { + e.printStackTrace(); + } + return buf; +} \ No newline at end of file