/** * Title: GPS Simulator * Copyright: Copyright (c) 2002 * Company: University of Oregon Computer Science Dept. * * @author Jason Prideaux * @version 1.0 * */ package transport.protocol; import java.io.*; /* ====================================================================== */ /** This class represents a Multicast message. This message is sent by * agents to the simulator, the simulator then sends the message to all * agents that are with within range and certain number of hops. It is * for when agents want to send messages to each other. * */ public abstract class P2PMessage extends Message implements Serializable{ /** Content to send in this message. Must be Serializable. */ private Object content; /** The maximum number hops the message can make. */ private int hops; /* ===================================================================== */ /** This constructor initializes the Message. Object content must be added * seperately with setContent() method, and the object must be * Serializable. * * @param message The String message. * @param from The port the message sender listens to. * */ public P2PMessage(int from){ super(2323, from); hops = 10; } //Constructor /* ===================================================================== */ /** This constructor initializes the Message. Object content must be added * seperately with setContent() method, and the object must be * Serializable. * * @param message The String message. * @param from The port the message sender listens to. * @param hops The max number of hops. * */ public P2PMessage(int from, int hops){ super(2323, from); this.hops = hops; } //Constructor /* ===================================================================== */ /** This method returns the object content of the message. * * @return Object The object content. * */ public Object getContent(){ return content; } //method: getContent /* ===================================================================== */ /** This method sets the object data to send in this message. * * @param Object The Serializable object to send. * */ public void setContent(Object c){ this.content = c; } //method: setContent /* ===================================================================== */ /** This method returns the max number of hops for this message to take. * * @return int The number of hops. * */ public int getHops(){ return hops; } //method: hops } //class: P2PMessage