public class NameProvider
extends java.lang.Object
This enables to Nengoros to automatically push groups of ROS nodes (launched nodes and group modem) into own namespaces. This ensures that the ROS communication will not interfere between ROS nodes in different NodeGroups. This enables Nengo to launch e.g. 2 instances of the same NeuralModule, which uses the same ROS nodes with the same names and topics. Nodes in each NodeGroup will be pushed into own namespace, so their complete names will be unique in the ROS network.
Stores names (each name includes namespace too) of ROS nodes that should be currently running in the ROS network and provides unique names (or namespaces) for groups of new nodes.
Modifier and Type | Field and Description |
---|---|
java.lang.String |
separator |
Constructor and Description |
---|
NameProvider() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
findNamespace(java.lang.String[] names,
java.lang.String group)
If nodes allow pushing them into own namespace, use this.
|
java.lang.String[] |
modifyNames(java.lang.String namespace,
java.lang.String[] prefferedNames,
java.lang.String group)
If you do not allow pushing yourself (this group) into own namespace.
|
java.lang.String[] |
namesOfRunningNodes() |
int |
numOfRunningNodes() |
void |
shutDown(java.lang.String name) |
void |
shutDown(java.lang.String[] names)
Shutdown nodes, that is: remove them from the map.
|
void |
shutDown(java.lang.String[] names,
java.lang.String namesapce) |
void |
shutDown(java.lang.String name,
java.lang.String namespace) |
public final java.lang.String separator
public java.lang.String[] modifyNames(java.lang.String namespace, java.lang.String[] prefferedNames, java.lang.String group)
namespace
- if you have own namespace, pass it here, if not, pass null or empty str.prefferedNames
- list of node names that I would like to use (e.g. Modem,RL)group
- name of group (e.g. null if none or name of SmartNeuron)public java.lang.String findNamespace(java.lang.String[] names, java.lang.String group)
names
- list of names, for each nodegroup
- name of node logic-group (e.g. name of SmartNeuron)public void shutDown(java.lang.String[] names)
names
- full names (we assume that these nodes do not allow namespacing)public void shutDown(java.lang.String name)
public void shutDown(java.lang.String name, java.lang.String namespace)
public void shutDown(java.lang.String[] names, java.lang.String namesapce)
public int numOfRunningNodes()
public java.lang.String[] namesOfRunningNodes()