package ua.ansymo.hintco

import java.util.Map
import java.util.Set
import org.intocps.fmi.Fmi2Status
import org.intocps.fmi.FmuInvocationException

interface IFmuInstance {
	def Fmi2Status doStep(double currentCommunicationPoint, double communicationStepSize) throws FmuInvocationException
	def Fmi2Status enterInitializationMode() throws FmuInvocationException
	def Fmi2Status exitInitializationMode() throws FmuInvocationException
	def Fmi2Status setupExperiment() throws FmuInvocationException
	def double getReal(String varName)
	def void setReal(String varName, double v)
	def void free()	
	def void reset()
	def void outputSnapshot(Map<OutputPortInstance, Double> outVals, Set<OutputPortInstance> filter)
	def void startCosimStep(double time, double stepSize)
	def void endCosimStep(double time, double stepSize)
	
}