Class ProtocolManager
The ProtocolManager
class is a singleton class.
See the documentation for the Node
class
for information on how to obtain a reference to its instance.
A reference to a Node's ProtocolManager
allows the Nodes installed
protocols to be managed. Installing a protocol server creates a
LinkServer
that listens on a specified NodeAddressID
.
In order to connect to a Node's LinkServer
, a Node must have
a matching protocol client installed in its local ProtocolManager
.
When protocol clients and servers are installed, an array of
Specification
objects can be supplied. These are
specifications that the client or server meets. The specifications for
a given protocol can be obtained and then used to test whether a set of
specifications match a given Profile
.
- Author:
- Quickstone Technologies Limited
-
Method Summary
Modifier and TypeMethodDescriptionorg.jcsp.net.Specification[]
getAddressSpecifications
(NodeAddressID addressID) Returns an array ofSpecification
objects that are held for a specified local address.org.jcsp.net.Specification[]
getProtocolSpecifications
(ProtocolID protocolID) Returns an array ofSpecification
objects that are held for a specified protocol.boolean
installProtocolClient
(ProtocolID protocolID, org.jcsp.net.Specification[] specifications, Hashtable settings) Installs a protocol client so that links can be established to Nodes withLinkServer
processes listening on the specified protocol.boolean
installProtocolServer
(NodeAddressID addressID, org.jcsp.net.Specification[] specifications) Installs aLinkServer
listening on a specifiedNodeAddressID
and holds the specified set ofSpecification
objects against the address.boolean
removeProtocolClient
(ProtocolID protocolID) Removes the installed protocol client for a specified protocol.boolean
stopProtocolServer
(NodeAddressID addressID) Stops theLinkServer
that is listening on the specified address.
-
Method Details
-
getProtocolSpecifications
Returns an array ofSpecification
objects that are held for a specified protocol.- Parameters:
protocolID
- theProtocolID
of a protocol- Returns:
- the specifications of the supplied protocol.
-
getAddressSpecifications
Returns an array ofSpecification
objects that are held for a specified local address.- Parameters:
addressID
- aNodeAddressID
that should match an address on which a localLinkServer
is listening.- Returns:
- the set of specifications that are held against the specified address.
-
installProtocolServer
public boolean installProtocolServer(NodeAddressID addressID, org.jcsp.net.Specification[] specifications) Installs aLinkServer
listening on a specifiedNodeAddressID
and holds the specified set ofSpecification
objects against the address.- Parameters:
addressID
- the address on which theLinkServer
should be started.specifications
- the specifications to hold against the address.- Returns:
true
iff the server is successfully installed.
-
stopProtocolServer
Stops theLinkServer
that is listening on the specified address.- Parameters:
addressID
- theNodeAddressID
on which theLinkServer
to stop is listening.- Returns:
true
if, after returning, noLinkServer
is listening on the specified adddress.
-
installProtocolClient
public boolean installProtocolClient(ProtocolID protocolID, org.jcsp.net.Specification[] specifications, Hashtable settings) Installs a protocol client so that links can be established to Nodes withLinkServer
processes listening on the specified protocol.- Parameters:
protocolID
- TheProtocolID
of the protocol to install.specifications
- The specification of the protocol being installed.settings
- aHashTable
that can contain settings that are passed to the protocol'sBuilder
.- Returns:
true
iff the protocol client is successfully installed or has already been installed.
-
removeProtocolClient
Removes the installed protocol client for a specified protocol.- Parameters:
protocolID
- theProtocolID
of the protocol client to remove.- Returns:
true
iff a matching protocol client has been successfully removed.
-