Transferring data from the conductor node to player nodes
The Java™ Integration
stage provides your Java code
with the DataChannel
interface to transfer data from
the conductor node to the player nodes.
DataChannel
interface provides the
following methods: sendTo()
receiveFrom()
To get an instance of the DataChannel
interface,
your Java code calls the getDataChannel
method
of the Configuration
class. To send data from the
conductor node, your Java code
calls the sendTo
method. To receive data on each
player node, your Java code
calls the receiveFrom
method.
To enable the
data transfer service capability during the stage initialization and
termination processes, your Java code
calls the setIsRunOnConductor
method of the Capabilities
class.
The getDataChannel
method returns null if the capability
is not enabled.
In the following example code, Java code passes string data from the conductor node to player nodes.
private int m_nodeID = -1;
public boolean validateConfiguration(Configuration configuration, boolean isRuntime) throws Exception
{
...
m_nodeID = configuration.getNodeNumber();
if (isRuntime == true)
{
// Get data channel
DataChannel channel = configuration.getDataChannel();
if (m_nodeID == -1) // On Conductor node
{
// Send data to the player node
String object = new String("*** test data ***");
Logger.information(object + " is sent from Conductor to Player. ");
channel.sendTo(DataChannel.NODE_PLAYER, object);
}
else // On Player node
{
// Receive data from the conductor node
String object = (String) channel.receiveFrom(DataChannel.NODE_CONDUCTOR);
Logger.information(object + "is received on Player(" + m_nodeID + ").");
}
}
...
return true;
}
Java_Stage: *** test data *** is set on the Conductor node. Java_Stage,0: *** test data *** is received on Player(0). Java_Stage,1: *** test data *** is received on Player(1).