Skip to content

Commit

Permalink
feat(output): pass RTI to output generators for additional interaction (
Browse files Browse the repository at this point in the history
  • Loading branch information
kschrab committed Jul 29, 2024
1 parent f1f0682 commit 83b722a
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ private Collection<OutputGeneratorLoader> loadConfiguration() {
// create a new instance of the generator loader
loader = loaderClass.getDeclaredConstructor().newInstance();

loader.initialize(generatorXmlConfiguration, ambassadorParameter.configuration.getParentFile());
loader.initialize(rti, generatorXmlConfiguration, ambassadorParameter.configuration.getParentFile());
} catch (InternalFederateException e) {
throw e;
} catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

package org.eclipse.mosaic.fed.output.ambassador;

import org.eclipse.mosaic.rti.api.RtiAmbassador;

import ch.qos.logback.classic.LoggerContext;
import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.tree.ImmutableNode;
Expand All @@ -30,6 +32,7 @@
public abstract class OutputGeneratorLoader {

private String id;
private RtiAmbassador rti;
private int updateInterval;
private long handleStartTime;
private long handleEndTime;
Expand All @@ -40,10 +43,12 @@ public abstract class OutputGeneratorLoader {
* this method is called just after a new instance of a derived output generator config was created.
* subclasses should call this method at first, and then proceed with reading custom parameters from the configuration
*
* @param rti the {@link RtiAmbassador} of the federation
* @param config output generator configuration
* @param configurationDirectory output generator configuration directory path
*/
public void initialize(HierarchicalConfiguration<ImmutableNode> config, File configurationDirectory) throws Exception {
public void initialize(RtiAmbassador rti, HierarchicalConfiguration<ImmutableNode> config, File configurationDirectory) throws Exception {
this.rti = rti;
this.id = ConfigHelper.getId(config);
this.updateInterval = ConfigHelper.getUpdateInterval(config);
this.handleStartTime = ConfigHelper.getHandleStartTime(config);
Expand All @@ -62,6 +67,15 @@ public String getId() {
return id;
}

/**
* Returns the {@link RtiAmbassador} of the federation for additional interaction with RTI.
*
* @return the {@link RtiAmbassador} of the federation.
*/
protected RtiAmbassador getRti() {
return rti;
}

/**
* Returns the update interval.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.eclipse.mosaic.fed.output.generator.file.write.WriteByFile;
import org.eclipse.mosaic.fed.output.generator.file.write.WriteByFileCompress;
import org.eclipse.mosaic.fed.output.generator.file.write.WriteByLog;
import org.eclipse.mosaic.rti.api.RtiAmbassador;

import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.tree.ImmutableNode;
Expand Down Expand Up @@ -146,8 +147,8 @@ private Write getWrite(HierarchicalConfiguration<ImmutableNode> sub) throws IOEx
}

@Override
public void initialize(HierarchicalConfiguration<ImmutableNode> config, File configurationDirectory) throws Exception {
super.initialize(config, configurationDirectory);
public void initialize(RtiAmbassador rti, HierarchicalConfiguration<ImmutableNode> config, File configurationDirectory) throws Exception {
super.initialize(rti, config, configurationDirectory);
try {
this.writer = this.getWrite(config);
this.interactionFormatter = this.createInteractionFormatter(config);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.eclipse.mosaic.fed.output.ambassador.AbstractOutputGenerator;
import org.eclipse.mosaic.fed.output.ambassador.OutputGeneratorLoader;
import org.eclipse.mosaic.rti.api.RtiAmbassador;

import org.apache.commons.configuration2.HierarchicalConfiguration;
import org.apache.commons.configuration2.tree.ImmutableNode;
Expand All @@ -28,8 +29,8 @@ public class WebsocketVisualizerLoader extends OutputGeneratorLoader {
private int port;

@Override
public void initialize(HierarchicalConfiguration<ImmutableNode> config, File configurationDirectory) throws Exception {
super.initialize(config, configurationDirectory);
public void initialize(RtiAmbassador rti, HierarchicalConfiguration<ImmutableNode> config, File configurationDirectory) throws Exception {
super.initialize(rti, config, configurationDirectory);
port = config.getInt("port");
}

Expand Down

0 comments on commit 83b722a

Please sign in to comment.