+++ /dev/null
-package example.symphony;\r
-\r
-import peersim.core.Node;\r
-\r
-/**\r
- *\r
- * @author Andrea Esposito <and1989@gmail.com>\r
- */\r
-public class Message implements Cloneable {\r
-\r
- public enum MessageType {\r
-\r
- ROUTE, ROUTE_RESPONSE, ROUTE_FAIL,\r
- JOIN, JOIN_RESPONSE,\r
- UPDATE_NEIGHBOURS, UPDATE_NEIGHBOURS_RESPONSE,\r
- REQUEST_LONG_RANGE_LINK, ACCEPTED_LONG_RANGE_LINK, REJECT_LONG_RANGE_LINK, DISCONNECT_LONG_RANGE_LINK, UNAVAILABLE_LONG_RANGE_LINK,\r
- UPDATE_STATUS, UPDATE_STATUS_RESPONSE,\r
- LEAVE,\r
- KEEP_ALIVE, KEEP_ALIVE_RESPONSE\r
- }\r
- private long hopCounter;\r
- private MessageType type;\r
- private Node src;\r
- private Node currentHop;\r
- private Object body;\r
- private static long globalID = 0;\r
- private final long id;\r
-\r
- public Message(Object body, Node src, MessageType type) {\r
- this.type = type;\r
- this.src = src;\r
- this.body = body;\r
- hopCounter = 0;\r
- id = globalID++;\r
- currentHop = src;\r
- }\r
-\r
- public long getID() {\r
- return id;\r
- }\r
-\r
- public Object getBody() {\r
- return body;\r
- }\r
-\r
- public void incrementHop() {\r
- hopCounter++;\r
- }\r
-\r
- public long getHop() {\r
- return hopCounter;\r
- }\r
-\r
- public MessageType getType() {\r
- return type;\r
- }\r
-\r
- public Node getSourceNode() {\r
- return src;\r
- }\r
-\r
- public Node getCurrentHop() {\r
- return currentHop;\r
- }\r
-\r
- public void setCurrentHop(Node currentHop) {\r
- this.currentHop = currentHop;\r
- }\r
-\r
- @Override\r
- public Object clone() throws CloneNotSupportedException {\r
- return super.clone();\r
- }\r
-\r
- @Override\r
- public String toString() {\r
-\r
- StringBuilder builder = new StringBuilder();\r
- builder.append("Message@").append(this.hashCode()).append("[\n");\r
-\r
- builder.append("\tID : ").append(id).append(",\n");\r
- builder.append("\tSource ID: ").append(src.getID()).append(",\n");\r
- builder.append("\tType : ").append(type).append(",\n");\r
- builder.append("\tBody : ").append(body).append(",\n");\r
- builder.append("\tCurrent Hop ID: ").append(currentHop.getID()).append(",\n");\r
- builder.append("\tHop Counter : ").append(hopCounter).append("\n]\n");\r
-\r
- return builder.toString();\r
- }\r
-}\r