org.jcsp.net2
Class NodeID

java.lang.Object
  extended by org.jcsp.net2.NodeID
All Implemented Interfaces:
Serializable, Comparable

public final class NodeID
extends Object
implements Comparable, Serializable

This class is used to uniquely identify a Node within the entire JCSP network of Nodes in operation. This is to allow ease to identify individual Nodes when IDs come in, and to quickly find them within tables of other Links to allow usage of existing connections. This is different to a NodeAddress, which is a symbolic name representing a Node, and which therefore may be repeated. The hope here is that by using enough pieces of data the Node should have a unique identification. This is done by gathering the information on the current system time in milliseconds, the current free memory of the JVM, the hash code of a newly created object, the name of the Node, if there is one, and the address of the Node itself. Having this much information should provide us with a unique ID. Other implementations of the protocol can use other means of identifying a Node uniquely, but they must use the same amount of data, e.g. string(number 64 bits) - string(number 64 bits) - string (number 32 bits) - string - address string, when communicating with another JCSP Node for the sake of compatibility.

Author:
Kevin Chalmers
See Also:
Serialized Form

Constructor Summary
NodeID(long long1, long long2, int int1, String nodeName, NodeAddress nodeAddress)
          Constructor taking the full details for a remote Node connection
 
Method Summary
 int compareTo(Object arg0)
          Compares this NodeID with another NodeID.
 boolean equals(Object arg0)
          Checks if the given object is equal to this NodeID
 NodeAddress getNodeAddress()
          Gets the NodeAddress part of the NodeID
 int hashCode()
          Returns the hashCode for this object
static NodeID parse(String str)
          Converts a string representation of a NodeID back to a NodeID object
 String toString()
          Converts the NodeID into a string for communication with other implementations, or for display purposes.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

NodeID

public NodeID(long long1,
              long long2,
              int int1,
              String nodeName,
              NodeAddress nodeAddress)
Constructor taking the full details for a remote Node connection

Parameters:
long1 - The time component of the remote Node
long2 - The memory component of the remote Node
int1 - The hashCode component of the remote Node
nodeName - The name component of the remote Node
nodeAddress - The NodeAddress component of the remote Node
Method Detail

compareTo

public int compareTo(Object arg0)
Compares this NodeID with another NodeID.

Specified by:
compareTo in interface Comparable
Parameters:
arg0 -
Returns:
-1, 0 or 1 if less than, equal, or greater than the other NodeID

equals

public boolean equals(Object arg0)
Checks if the given object is equal to this NodeID

Overrides:
equals in class Object
Parameters:
arg0 -
Returns:
True if equal, false otherwise

hashCode

public int hashCode()
Returns the hashCode for this object

Overrides:
hashCode in class Object
Returns:
Hashcode for the NodeID

toString

public String toString()
Converts the NodeID into a string for communication with other implementations, or for display purposes.

Overrides:
toString in class Object
Returns:
String representation of the NodeID

getNodeAddress

public NodeAddress getNodeAddress()
Gets the NodeAddress part of the NodeID

Returns:
The NodeAddress part of the NodeID

parse

public static NodeID parse(String str)
Converts a string representation of a NodeID back to a NodeID object

Parameters:
str - The string version of a NodeID
Returns:
A new NodeID created from the String representation


Copyright © 1996-2012. All Rights Reserved.