Skip to content
Snippets Groups Projects
Commit e90466ee authored by Brutzman, Don's avatar Brutzman, Don
Browse files

expose accessor methods for selected member variables

parent 478b9b95
No related branches found
No related tags found
No related merge requests found
......@@ -17,15 +17,16 @@ import java.util.ArrayList;
// import jdk.internal.vm.annotation.IntrinsicCandidate;
/**
*
* Handle most networking chores, provide clean interface for programs connecting to OpenDIS7 communications
* @author brutzman
*/
public class ChannelOpenDis7 {
public class ChannelOpenDis7
{
/**
* Output prefix to help with logging by identifying this class.
*/
private static String TRACE_PREFIX = "[OpenDis7]";
static String thisHostName = "localhost";
private String TRACE_PREFIX = "[OpenDis7]"; // might have different ChannelOpenDis7 objects created on different channels, so non-static
private static String thisHostName = "localhost";
private static final String NETWORK_ADDRESS_DEFAULT = "239.1.2.3";
private static final int NETWORK_PORT_DEFAULT = 3000;
private static final String DEFAULT_PDULOG_OUTPUT_DIRECTORY = "./pduLog";
......@@ -36,13 +37,13 @@ public class ChannelOpenDis7 {
static DisTime.TimestampStyle timestampStyle = DisTime.TimestampStyle.IEEE_ABSOLUTE;
/** Creates DIS Protocol Data Unit (PDU) classes for simulation entities */
static PduFactory pduFactory;
private static PduFactory pduFactory;
// class variables
DisThreadedNetworkInterface disNetworkInterface;
DisThreadedNetworkInterface.PduListener pduListener;
Pdu receivedPdu;
PduRecorder pduRecorder;
private DisThreadedNetworkInterface disNetworkInterface;
DisThreadedNetworkInterface.PduListener pduListener;
Pdu receivedPdu;
private PduRecorder pduRecorder;
public ChannelOpenDis7()
{
......@@ -56,7 +57,7 @@ public class ChannelOpenDis7 {
}
catch (UnknownHostException uhe)
{
System.out.println(TRACE_PREFIX + thisHostName + "not connected to network: " + uhe.getMessage());
System.out.println(TRACE_PREFIX + thisHostName + " id not connected to network: " + uhe.getMessage());
}
}
......@@ -114,9 +115,9 @@ public class ChannelOpenDis7 {
*/
public void setUpNetworkInterface() {
disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
disNetworkInterface.setDescriptor("ExampleSimulationProgram pdu looping");
System.out.println("Network confirmation:" + " address=" + disNetworkInterface.getAddress() + // disNetworkInterface.getMulticastGroup() +
" port=" + disNetworkInterface.getPort()); // + disNetworkInterface.getDisPort());
getDisNetworkInterface().setDescriptor("ExampleSimulationProgram pdu looping");
System.out.println("Network confirmation:" + " address=" + getDisNetworkInterface().getAddress() + // disNetworkInterface.getMulticastGroup() +
" port=" + getDisNetworkInterface().getPort()); // + disNetworkInterface.getDisPort());
pduListener = new DisThreadedNetworkInterface.PduListener() {
/** Callback handler for listener */
@Override
......@@ -124,18 +125,18 @@ public class ChannelOpenDis7 {
receivedPdu = newPdu;
}
};
disNetworkInterface.addListener(pduListener);
getDisNetworkInterface().addListener(pduListener);
String pduLogOutputDirectory = DEFAULT_PDULOG_OUTPUT_DIRECTORY;
System.out.println("Beginning pdu save to directory " + pduLogOutputDirectory);
pduRecorder = new PduRecorder(pduLogOutputDirectory, getNetworkAddress(), getNetworkPort()); // assumes save
pduRecorder.setEncodingPduLog(PduRecorder.ENCODING_PLAINTEXT);
pduRecorder.setVerbose(true); // either sending, receiving or both
pduRecorder.start(); // begin running
getPduRecorder().setEncodingPduLog(PduRecorder.ENCODING_PLAINTEXT);
getPduRecorder().setVerbose(true); // either sending, receiving or both
getPduRecorder().start(); // begin running
}
/** All done, release network resources */
public void tearDownNetworkInterface() {
pduRecorder.stop(); // handles disNetworkInterface.close(), tears down threads and sockets
getPduRecorder().stop(); // handles disNetworkInterface.close(), tears down threads and sockets
}
/**
......@@ -144,11 +145,11 @@ public class ChannelOpenDis7 {
*/
protected void sendSinglePdu(Pdu pdu)
{
if (disNetworkInterface == null)
if (getDisNetworkInterface() == null)
setUpNetworkInterface(); // ensure connected
try
{
disNetworkInterface.send(pdu);
getDisNetworkInterface().send(pdu);
Thread.sleep(100); // TODO consider refactoring the wait logic and moving externally
}
catch (InterruptedException ex)
......@@ -179,14 +180,14 @@ public class ChannelOpenDis7 {
}
if (!newCommentsList.isEmpty())
{
if (disNetworkInterface == null)
if (getDisNetworkInterface() == null)
setUpNetworkInterface(); // ensure connected
if (commentType == null)
commentType = VariableRecordType.OTHER; // fallback value; TODO consider pushing into pduFactory
// now build the commentPdu from these string inputs, thus constructing a narrative entry
@SuppressWarnings("CollectionsToArray")
CommentPdu commentPdu = pduFactory.makeCommentPdu(commentType, newCommentsList.toArray(new String[0])); // comments);
CommentPdu commentPdu = getPduFactory().makeCommentPdu(commentType, newCommentsList.toArray(new String[0])); // comments);
sendSinglePdu(commentPdu);
if (isVerboseComments())
{
......@@ -216,14 +217,14 @@ public class ChannelOpenDis7 {
/**
* @return the TRACE_PREFIX
*/
public static String getTRACE_PREFIX() {
public String getTRACE_PREFIX() {
return TRACE_PREFIX;
}
/**
* @param aTRACE_PREFIX the TRACE_PREFIX to set
*/
public static void setTRACE_PREFIX(String aTRACE_PREFIX) {
public void setTRACE_PREFIX(String aTRACE_PREFIX) {
TRACE_PREFIX = aTRACE_PREFIX;
}
......@@ -241,4 +242,41 @@ public class ChannelOpenDis7 {
public void printlnTRACE(String message) {
System.out.println(TRACE_PREFIX + message);
}
/**
* @return the pduFactory, simplifying program imports and configuration
*/
public PduFactory getPduFactory() {
if (pduFactory == null)
pduFactory = new PduFactory(timestampStyle);
return pduFactory;
}
/**
* @return the disNetworkInterface
*/
public DisThreadedNetworkInterface getDisNetworkInterface() {
return disNetworkInterface;
}
/**
* @return the thisHostName
*/
public static String getThisHostName() {
return thisHostName;
}
/**
* @param aThisHostName the thisHostName to set
*/
public static void setThisHostName(String aThisHostName) {
thisHostName = aThisHostName;
}
/**
* @return the pduRecorder
*/
public PduRecorder getPduRecorder() {
return pduRecorder;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment