final int[] offsets = buffer.getOffsets(); final int size = buffer.getSize(); if (buffer instanceof DataBufferByte) {
/** * Serializes this grid. This method processes {@link #grid} in a special way because * the default JDK implementations are not serializable. */ private void writeObject(final ObjectOutputStream out) throws IOException { out.defaultWriteObject(); final int size = grid.getSize(); final int[] offsets = grid.getOffsets(); final Class<? extends DataBuffer> type = grid.getClass(); final Object data; // Assigned to DataBuffer.getBankData(), which returns a clone. try { data = type.getMethod("getBankData", (Class<?>[]) null).invoke(grid, (Object[]) null); for (int i=Array.getLength(data); --i>=0;) { Object bank = Array.get(data, i); final int offset = offsets[i]; if (offset != 0 || Array.getLength(bank) != size) { final Object original = bank; bank = Array.newInstance(original.getClass().getComponentType(), size); System.arraycopy(original, offset, bank, 0, size); Array.set(data, i, bank); } } } catch (ReflectiveOperationException e) { NotSerializableException exception = new NotSerializableException(type.getCanonicalName()); exception.initCause(e); throw exception; } out.writeObject(type); out.writeObject(data); }
final int[] offsets = buffer.getOffsets(); final int size = buffer.getSize(); if (buffer instanceof DataBufferByte) {
final int[] offsets = buffer.getOffsets(); final int size = buffer.getSize(); if (buffer instanceof DataBufferByte) {
int [] offsets = srcDB.getOffsets(); for (int b = 0; b < banks; b++) { switch (srcDB.getDataType()) {
int[] offsets = srcDB.getOffsets(); for (int b = 0; b < banks; b++) { switch (srcDB.getDataType()) {
int[] offsets = srcDB.getOffsets(); for (int b = 0; b < banks; b++) { switch (srcDB.getDataType()) {
int [] offsets = srcDB.getOffsets(); for (int b=0; b< banks; b++) { switch (srcDB.getDataType()) {
int [] offsets = srcDB.getOffsets(); for (int b=0; b< banks; b++) { switch (srcDB.getDataType()) {
int [] offsets = srcDB.getOffsets(); for (int b=0; b< banks; b++) { switch (srcDB.getDataType()) {
private static void traceObj(String label, DataBuffer buf, int traceMask, StringBuffer sb, int indent) { if (!isEnabled()) { return; } if (buf != null) { traceObjStart(label, buf, sb, indent); indent += INDENT_INCR; if (isFlagSet(traceMask, F_ATTRIBUTES)) { traceField("dataType", ImageUtils.getDataTypeName(buf.getDataType()), sb, indent); traceField("size", buf.getSize(), sb, indent); traceField("numBanks", buf.getNumBanks(), sb, indent); traceField("offsets", buf.getOffsets(), sb, indent); } indent -= INDENT_INCR; traceObjEnd(sb, indent); } else { traceField(label, buf, sb, indent); } }
public static byte[] getDataBufferBinary(final DataBuffer dataBuffer) { final DataBufferProtos.DataBuffer.Builder bldr = DataBufferProtos.DataBuffer.newBuilder(); bldr.setType(dataBuffer.getDataType()); bldr.addAllOffsets(Ints.asList(dataBuffer.getOffsets())); bldr.setSize(dataBuffer.getSize()); switch (dataBuffer.getDataType()) {