Portability | portable |
---|---|
Stability | experimental |
Maintainer | amy@nualeargais.ie |
Safe Haskell | None |
Provides tasks that you can use with a daemon. These tasks handle reading and writing agents, which reduces the amount of code you need to write.
It’s also easy to write your own tasks, using these as a guide.)
- type AgentProgram u = Agent u -> StateT u IO (Agent u)
- type AgentsProgram u = [Agent u] -> StateT u IO [Agent u]
- withAgent :: (Universe u, Serialize (Agent u)) => AgentProgram u -> AgentId -> StateT u IO ()
- withAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> [AgentId] -> StateT u IO ()
- runNoninteractingAgents :: (Universe u, Serialize (Agent u)) => AgentProgram u -> SummaryProgram u -> StateT u IO ()
- runInteractingAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> SummaryProgram u -> StateT u IO ()
- simpleDaemon :: Universe u => Daemon u
- startupHandler :: Universe u => u -> IO u
- shutdownHandler :: Universe u => u -> IO ()
- exceptionHandler :: Universe u => u -> SomeException -> IO u
- noSummary :: SummaryProgram u
Documentation
type AgentProgram u = Agent u -> StateT u IO (Agent u)Source
A program involving one agent. The input parameter is the agent. The program must return the agent (which may have been modified).
type AgentsProgram u = [Agent u] -> StateT u IO [Agent u]Source
A program involving multiple agents. The input parameter is a list of agents. The program must return a list of agents that have been *modified*. The order of the output list is not important.
withAgent :: (Universe u, Serialize (Agent u)) => AgentProgram u -> AgentId -> StateT u IO ()Source
Run a program involving one agent
withAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> [AgentId] -> StateT u IO ()Source
runNoninteractingAgents :: (Universe u, Serialize (Agent u)) => AgentProgram u -> SummaryProgram u -> StateT u IO ()Source
runInteractingAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> SummaryProgram u -> StateT u IO ()Source
simpleDaemon :: Universe u => Daemon uSource
startupHandler :: Universe u => u -> IO uSource
shutdownHandler :: Universe u => u -> IO ()Source
exceptionHandler :: Universe u => u -> SomeException -> IO uSource