private void writeMethodReturn(ByteBuffer buffer, RemoteMethodReturnMessage ret) throws IOException{ buffer.putShort(ret.invocationID); if (ret.retVal != null){ buffer.put((byte)0x01); Serializer.writeClassAndObject(buffer, ret.retVal); }else{ buffer.put((byte)0x00); } }
/** * Converts a message to a ByteBuffer using the Serializer * and the (short length) + data protocol. If target is null * then a 32k byte buffer will be created and filled. */ public static ByteBuffer messageToBuffer( Message message, ByteBuffer target ) { // Could let the caller pass their own in ByteBuffer buffer = target == null ? ByteBuffer.allocate( 32767 + 2 ) : target; try { buffer.position( 2 ); Serializer.writeClassAndObject( buffer, message ); buffer.flip(); short dataLength = (short)(buffer.remaining() - 2); buffer.putShort( dataLength ); buffer.position( 0 ); return buffer; } catch( IOException e ) { throw new RuntimeException( "Error serializing message", e ); } }
public void writeObject(ByteBuffer buffer, Object object) throws IOException { if (!(object instanceof GZIPCompressedMessage)) return; Message message = ((GZIPCompressedMessage)object).getMessage(); ByteBuffer tempBuffer = ByteBuffer.allocate(512000); Serializer.writeClassAndObject(tempBuffer, message); ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); GZIPOutputStream gzipOutput = new GZIPOutputStream(byteArrayOutput); tempBuffer.flip(); gzipOutput.write(tempBuffer.array(), 0, tempBuffer.limit()); gzipOutput.flush(); gzipOutput.finish(); gzipOutput.close(); buffer.put(byteArrayOutput.toByteArray()); } }
private void writeMethodCall(ByteBuffer buffer, RemoteMethodCallMessage call) throws IOException{ buffer.putShort((short)call.objectId); buffer.putShort(call.methodId); buffer.putShort(call.invocationId); if (call.args == null){ buffer.put((byte)0); }else{ buffer.put((byte)call.args.length); // Right now it writes 0 for every null argument // and 1 for every non-null argument followed by the serialized // argument. For the future, using a bit set should be considered. for (Object obj : call.args){ if (obj != null){ buffer.put((byte)0x01); Serializer.writeClassAndObject(buffer, obj); }else{ buffer.put((byte)0x00); } } } }
public void writeObject(ByteBuffer buffer, Object object) throws IOException { if (!(object instanceof ZIPCompressedMessage)) return; ZIPCompressedMessage zipMessage = (ZIPCompressedMessage)object; Message message = zipMessage.getMessage(); ByteBuffer tempBuffer = ByteBuffer.allocate(512000); Serializer.writeClassAndObject(tempBuffer, message); ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); ZipOutputStream zipOutput = new ZipOutputStream(byteArrayOutput); zipOutput.setLevel(zipMessage.getLevel()); ZipEntry zipEntry = new ZipEntry("zip"); zipOutput.putNextEntry(zipEntry); tempBuffer.flip(); zipOutput.write(tempBuffer.array(), 0, tempBuffer.limit()); zipOutput.flush(); zipOutput.closeEntry(); zipOutput.close(); buffer.put(byteArrayOutput.toByteArray()); } }
private void writeArray(Serializer elementSerializer, ByteBuffer buffer, Object array, int dimension, int dimensionCount) throws IOException { int length = Array.getLength(array); if (dimension > 0) { buffer.putInt(length); } // Write array data. boolean elementsAreArrays = dimension < dimensionCount - 1; for (int i = 0; i < length; i++) { Object element = Array.get(array, i); if (elementsAreArrays) { if (element != null) writeArray(elementSerializer, buffer, element, dimension + 1, dimensionCount); } else if (elementSerializer != null) { elementSerializer.writeObject(buffer, element); } else { // Each element could be a different type. Store the class with the object. Serializer.writeClassAndObject(buffer, element); } } }
buffer.put((byte)0); for (Object elem : collection) { Serializer.writeClassAndObject(buffer, elem);
serializer.writeObject(buffer, val); } else { Serializer.writeClassAndObject(buffer, val);
entry = it.next(); if (uniqueKeys){ Serializer.writeClassAndObject(buffer, entry.getKey()); }else{ keySerial.writeObject(buffer, entry.getKey()); Serializer.writeClassAndObject(buffer, entry.getValue()); }else{ valSerial.writeObject(buffer, entry.getValue());
private void writeMethodReturn(ByteBuffer buffer, RemoteMethodReturnMessage ret) throws IOException{ buffer.putShort(ret.invocationID); if (ret.retVal != null){ buffer.put((byte)0x01); Serializer.writeClassAndObject(buffer, ret.retVal); }else{ buffer.put((byte)0x00); } }
private void writeMethodReturn(ByteBuffer buffer, RemoteMethodReturnMessage ret) throws IOException{ buffer.putShort(ret.invocationID); if (ret.retVal != null){ buffer.put((byte)0x01); Serializer.writeClassAndObject(buffer, ret.retVal); }else{ buffer.put((byte)0x00); } }
public void writeObject(ByteBuffer buffer, Object object) throws IOException { if (!(object instanceof GZIPCompressedMessage)) return; Message message = ((GZIPCompressedMessage)object).getMessage(); ByteBuffer tempBuffer = ByteBuffer.allocate(512000); Serializer.writeClassAndObject(tempBuffer, message); ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); GZIPOutputStream gzipOutput = new GZIPOutputStream(byteArrayOutput); gzipOutput.write(tempBuffer.array()); gzipOutput.flush(); gzipOutput.finish(); gzipOutput.close(); buffer.put(byteArrayOutput.toByteArray()); } }
public void writeObject(ByteBuffer buffer, Object object) throws IOException { if (!(object instanceof GZIPCompressedMessage)) return; Message message = ((GZIPCompressedMessage)object).getMessage(); ByteBuffer tempBuffer = ByteBuffer.allocate(512000); Serializer.writeClassAndObject(tempBuffer, message); ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); GZIPOutputStream gzipOutput = new GZIPOutputStream(byteArrayOutput); tempBuffer.flip(); gzipOutput.write(tempBuffer.array(), 0, tempBuffer.limit()); gzipOutput.flush(); gzipOutput.finish(); gzipOutput.close(); buffer.put(byteArrayOutput.toByteArray()); } }
private void writeMethodCall(ByteBuffer buffer, RemoteMethodCallMessage call) throws IOException{ buffer.putShort((short)call.objectId); buffer.putShort(call.methodId); buffer.putShort(call.invocationId); if (call.args == null){ buffer.put((byte)0); }else{ buffer.put((byte)call.args.length); // Right now it writes 0 for every null argument // and 1 for every non-null argument followed by the serialized // argument. For the future, using a bit set should be considered. for (Object obj : call.args){ if (obj != null){ buffer.put((byte)0x01); Serializer.writeClassAndObject(buffer, obj); }else{ buffer.put((byte)0x00); } } } }
/** * Converts a message to a ByteBuffer using the Serializer * and the (short length) + data protocol. If target is null * then a 32k byte buffer will be created and filled. */ public static ByteBuffer messageToBuffer( Message message, ByteBuffer target ) { // Could let the caller pass their own in ByteBuffer buffer = target == null ? ByteBuffer.allocate( 32767 + 2 ) : target; try { buffer.position( 2 ); Serializer.writeClassAndObject( buffer, message ); buffer.flip(); short dataLength = (short)(buffer.remaining() - 2); buffer.putShort( dataLength ); buffer.position( 0 ); return buffer; } catch( IOException e ) { throw new RuntimeException( "Error serializing message", e ); } }
public void writeObject(ByteBuffer buffer, Object object) throws IOException { if (!(object instanceof ZIPCompressedMessage)) return; ZIPCompressedMessage zipMessage = (ZIPCompressedMessage)object; Message message = zipMessage.getMessage(); ByteBuffer tempBuffer = ByteBuffer.allocate(512000); Serializer.writeClassAndObject(tempBuffer, message); ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); ZipOutputStream zipOutput = new ZipOutputStream(byteArrayOutput); zipOutput.setLevel(zipMessage.getLevel()); ZipEntry zipEntry = new ZipEntry("zip"); zipOutput.putNextEntry(zipEntry); zipOutput.write(tempBuffer.array()); zipOutput.flush(); zipOutput.closeEntry(); zipOutput.close(); buffer.put(byteArrayOutput.toByteArray()); } }
public void writeObject(ByteBuffer buffer, Object object) throws IOException { if (!(object instanceof ZIPCompressedMessage)) return; ZIPCompressedMessage zipMessage = (ZIPCompressedMessage)object; Message message = zipMessage.getMessage(); ByteBuffer tempBuffer = ByteBuffer.allocate(512000); Serializer.writeClassAndObject(tempBuffer, message); ByteArrayOutputStream byteArrayOutput = new ByteArrayOutputStream(); ZipOutputStream zipOutput = new ZipOutputStream(byteArrayOutput); zipOutput.setLevel(zipMessage.getLevel()); ZipEntry zipEntry = new ZipEntry("zip"); zipOutput.putNextEntry(zipEntry); tempBuffer.flip(); zipOutput.write(tempBuffer.array(), 0, tempBuffer.limit()); zipOutput.flush(); zipOutput.closeEntry(); zipOutput.close(); buffer.put(byteArrayOutput.toByteArray()); } }
private void writeArray(Serializer elementSerializer, ByteBuffer buffer, Object array, int dimension, int dimensionCount) throws IOException { int length = Array.getLength(array); if (dimension > 0) { buffer.putInt(length); } // Write array data. boolean elementsAreArrays = dimension < dimensionCount - 1; for (int i = 0; i < length; i++) { Object element = Array.get(array, i); if (elementsAreArrays) { if (element != null) writeArray(elementSerializer, buffer, element, dimension + 1, dimensionCount); } else if (elementSerializer != null) { elementSerializer.writeObject(buffer, element); } else { // Each element could be a different type. Store the class with the object. Serializer.writeClassAndObject(buffer, element); } } }
private void writeArray(Serializer elementSerializer, ByteBuffer buffer, Object array, int dimension, int dimensionCount) throws IOException { int length = Array.getLength(array); if (dimension > 0) { buffer.putInt(length); } // Write array data. boolean elementsAreArrays = dimension < dimensionCount - 1; for (int i = 0; i < length; i++) { Object element = Array.get(array, i); if (elementsAreArrays) { if (element != null) writeArray(elementSerializer, buffer, element, dimension + 1, dimensionCount); } else if (elementSerializer != null) { elementSerializer.writeObject(buffer, element); } else { // Each element could be a different type. Store the class with the object. Serializer.writeClassAndObject(buffer, element); } } }
public void writeObject( ByteBuffer buffer, Object object ) throws IOException { EntityChange change = (EntityChange)object; idSerializer.writeObject(buffer, change.getEntityId()); classSerializer.writeObject(buffer, change.getComponentType()); // Have to use dynamic lookup for the value Serializer.writeClassAndObject(buffer, TransientUtils.clean(change.getComponent())); } }