public long serializedSize(NamesQueryFilter f, int version) { TypeSizes sizes = TypeSizes.NATIVE; int size = sizes.sizeof(f.columns.size()); ISerializer<CellName> serializer = type.cellSerializer(); for (CellName cName : f.columns) size += serializer.serializedSize(cName, sizes); size += sizes.sizeof(f.countCQL3Rows); return size; }
private RefCountedMemory serialize(V value) { long serializedSize = serializer.serializedSize(value, ENCODED_TYPE_SIZES); if (serializedSize > Integer.MAX_VALUE) throw new IllegalArgumentException("Unable to allocate " + serializedSize + " bytes"); RefCountedMemory freeableMemory; try { freeableMemory = new RefCountedMemory(serializedSize); } catch (OutOfMemoryError e) { return null; } try { serializer.serialize( value, new EncodedDataOutputStream(new MemoryOutputStream(freeableMemory))); } catch (IOException e) { throw new RuntimeException(e); } return freeableMemory; }