package org.wonderdb.serialize.block; import org.jboss.netty.buffer.ChannelBuffer; public class BlockHeaderSerializer { private static BlockHeaderSerializer instance = new BlockHeaderSerializer(); private BlockHeaderSerializer() { } public static BlockHeaderSerializer getInstance() { return instance; } public BlockHeader getHeader(ChannelBuffer buffer) { byte treeBlockMask = 0x1; byte branchBlockMask = 0x2; byte b = buffer.readByte(); BlockHeader header = new BlockHeader(); header.setIndexBranchBlock((b & branchBlockMask) > 0); header.setIndexBlock((treeBlockMask & b) > 0); return header; } public void serialize(BlockHeader header, ChannelBuffer buffer) { byte treeBlockMask = 0x1; byte branchBlockMask = 0x2; byte b = header.isIndexBlock() ? treeBlockMask : 0; b = (byte) (b | (header.isIndexBranchBlock() ? branchBlockMask : 0)); buffer.writeByte(b); } }