All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.unibo.jakta.agents.bdi.executionstrategies.ExecutionStrategy.kt Maven / Gradle / Ivy

package it.unibo.jakta.agents.bdi.executionstrategies

import it.unibo.jakta.agents.bdi.Agent
import it.unibo.jakta.agents.bdi.Mas
import it.unibo.jakta.agents.bdi.executionstrategies.impl.DiscreteEventExecutionImpl
import it.unibo.jakta.agents.bdi.executionstrategies.impl.DiscreteTimeExecutionImpl
import it.unibo.jakta.agents.bdi.executionstrategies.impl.OneThreadPerAgentImpl
import it.unibo.jakta.agents.bdi.executionstrategies.impl.OneThreadPerMasImpl

interface ExecutionStrategy {
    fun dispatch(mas: Mas, debugEnabled: Boolean)

    fun spawnAgent(agent: Agent)

    fun removeAgent(agentName: String)

    companion object {
        fun oneThreadPerAgent(): ExecutionStrategy = OneThreadPerAgentImpl()

        fun oneThreadPerMas(): ExecutionStrategy = OneThreadPerMasImpl()

        fun discreteEventExecution(): ExecutionStrategy = DiscreteEventExecutionImpl()

        fun discreteTimeExecution(): ExecutionStrategy = DiscreteTimeExecutionImpl()
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy