def __init__(self, name=None, state_id=None, input_data_ports=None, output_data_ports=None, income=None, outcomes=None, path=None, filename=None, check_path=True, safe_init=True): State.__init__(self, name, state_id, input_data_ports, output_data_ports, income, outcomes, safe_init=safe_init) self._script = None self.script = Script(path, filename, parent=self) self.logger = log.get_logger(self.name) # here all persistent variables that should be available for the next state run should be stored self.persistent_variables = {}
def create_concurrency_barrier_state(): state1 = ExecutionState("FirstState", "id_of_state_1", path=testing_utils.TEST_SCRIPT_PATH, filename="concurrency_barrier1.py") state1.add_outcome("FirstOutcomeState1", 3) state1.add_outcome("SecondOutcomeState1", 4) input_state1 = state1.add_input_data_port("input_data_port1", "float") output_state1 = state1.add_output_data_port("output_data_port1", "float") state2 = ExecutionState("SecondState", "id_of_state_2", path=testing_utils.TEST_SCRIPT_PATH, filename="concurrency_barrier2.py") state2.add_outcome("FirstOutcomeState2", 3) state2.add_outcome("SecondOutcomeState2", 4) input_state2 = state2.add_input_data_port("input_data_port1", "float") output_state2 = state2.add_output_data_port("output_data_port1", "float") barrier_state = BarrierConcurrencyState("FirstConcurrencyState", "barrier_state_id") barrier_state.add_state(state1) barrier_state.add_state(state2) input1_state3 = barrier_state.add_input_data_port("input_data_port1", "float", 0.1) input2_state3 = barrier_state.add_input_data_port("input_data_port2", "float", 0.1) barrier_state.add_data_flow(barrier_state.state_id, input1_state3, state1.state_id, input_state1) barrier_state.add_data_flow(barrier_state.state_id, input2_state3, state2.state_id, input_state2) barrier_state.add_output_data_port("output_data_port1", "str", "default_output_value") barrier_state.add_outcome("success_outcome", 3) barrier_state.add_outcome("error_outcome", 4) barrier_state.states[UNIQUE_DECIDER_STATE_ID].name = "decider_state" barrier_state.states[UNIQUE_DECIDER_STATE_ID]._script = Script( path=testing_utils.TEST_SCRIPT_PATH, filename="decider_state.py", check_path=True, parent=barrier_state.states[UNIQUE_DECIDER_STATE_ID]) barrier_state.states[UNIQUE_DECIDER_STATE_ID].add_outcome( "FirstOutcomeDecider", 3) barrier_state.states[UNIQUE_DECIDER_STATE_ID].add_outcome( "SecondOutcomeDecider", 4) barrier_state.add_transition( barrier_state.states[UNIQUE_DECIDER_STATE_ID].state_id, 3, barrier_state.state_id, 3) barrier_state.add_transition( barrier_state.states[UNIQUE_DECIDER_STATE_ID].state_id, 4, barrier_state.state_id, 4) return barrier_state