Package org.jcsp.net.tcpip

# Class TCPIPNodeFactory

java.lang.Object
org.jcsp.net.tcpip.TCPIPNodeFactory

All Implemented Interfaces:
  `Serializable`, `NodeFactory`

public class TCPIPNodeFactory extends Object implements NodeFactory

Default factory for simple initialisations using the TCPIPv4 protocol package.

Other constructors can be used to specify a particular CNS server. The default behaviour will extract a CNS server from the system property "org.jcsp.tcpip.DefaultCNSServer" with the server specified as a name or IP address with optional port number.

If built with 1.4 or higher the user preferences will also be checked but only if a runtime supporting the preferences is available. If not present the system preferences will then be checked.

Author:
  Quickstone Technologies Limited
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`TCPIPNodeFactory()`
Default constructor, connecting to the local host on the default CNS port or to a host name in the system properties.
`TCPIPNodeFactory(String cnsServer)`
Connect to the named host on the default CNS port.
`TCPIPNodeFactory(String cnsServerAddress, int cnsServerPort)`
Connect to a named host on a specific port.

## Method Summary

Modifier and Type
Method
Description
`NodeKey`
`initNode(Node node, Node.Attributes attribs)`
Initialise the node to listen on all local addresses, and start a CNS service.
`static NodeFactory`
`instantiate()`
Constructs an instance of this class.
`void`
`setLocalPort(int port)`
Sets the port number that should be used.
`void`
`setSecurityAuthority(SecurityService security)`
Sets the security service to be used.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TCPIPNodeFactory

public TCPIPNodeFactory()
Default constructor, connecting to the local host on the default CNS port or to a host name in the system properties. The host name should be specified as name:port or just the host name to use the default CNS port.

### TCPIPNodeFactory

public TCPIPNodeFactory(String cnsServer)
Connect to the named host on the default CNS port. If the server name is given as `null` then the CNS service will not be loaded.

Parameters:
  `cnsServer` - name of server

### TCPIPNodeFactory

public TCPIPNodeFactory(String cnsServerAddress, int cnsServerPort)
Connect to a named host on a specific port.

Parameters:
  `cnsServerAddress` - name of the server
  `cnsServerPort` - port to connect to

## Method Details

### instantiate

public static NodeFactory instantiate()
Constructs an instance of this class. This method is provided so that a later implementation can opt to pass construction to an alternative under certain conditions. This is for use by the infrastructure only. Users should call the public constructors.

### initNode

public NodeKey initNode(Node node, Node.Attributes attribs) throws NodeInitFailedException
Initialise the node to listen on all local addresses, and start a CNS service.

Specified by:
  `initNode` in interface `NodeFactory`
Parameters:
  `node` - the node to be initialized
  `attribs` - access to the restricted node attributes
Throws:
  `NodeInitFailedException` - if a problem occurs

### setLocalPort

public void setLocalPort(int port)
Sets the port number that should be used. If this is not called then the system will allocate an arbitrary port.

Parameters:
  `port` - the port number, 0 invalid input: '<'= port invalid input: '<' 65536.

### setSecurityAuthority

public void setSecurityAuthority(SecurityService security)
Sets the security service to be used.

Parameters:
  `security` - the new security authority.