/******************************************************************************* * Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://robocode.sourceforge.net/license/epl-v10.html * * Contributors: * Pavel Savara * - Initial implementation *******************************************************************************/ package net.sf.robocode.peer; import net.sf.robocode.serialization.ISerializableHelper; import net.sf.robocode.serialization.RbSerializer; import java.io.Serializable; import java.nio.ByteBuffer; /** * @author Pavel Savara (original) */ public class TeamMessage implements Serializable { private static final long serialVersionUID = 1L; public TeamMessage(String sender, String recipient, byte[] message) { this.sender = sender; this.recipient = recipient; this.message = message; } public final String sender; public final String recipient; public final byte[] message; static ISerializableHelper createHiddenSerializer() { return new SerializableHelper(); } private static class SerializableHelper implements ISerializableHelper { public int sizeOf(RbSerializer serializer, Object object) { TeamMessage obj = (TeamMessage) object; final int s = serializer.sizeOf(obj.sender); final int r = serializer.sizeOf(obj.recipient); final int m = serializer.sizeOf(obj.message); return RbSerializer.SIZEOF_TYPEINFO + s + r + m; } public void serialize(RbSerializer serializer, ByteBuffer buffer, Object object) { TeamMessage obj = (TeamMessage) object; serializer.serialize(buffer, obj.sender); serializer.serialize(buffer, obj.recipient); serializer.serialize(buffer, obj.message); } public Object deserialize(RbSerializer serializer, ByteBuffer buffer) { String sender = serializer.deserializeString(buffer); String recipient = serializer.deserializeString(buffer); byte[] message = serializer.deserializeBytes(buffer); return new TeamMessage(sender, recipient, message); } } }