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, and various other housekeeping chores, 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 -> (Int, Int) -> StateT u IO () -> StateT u IO () -> StateT u IO Bool
- runInteractingAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> (Int, Int) -> StateT u IO () -> StateT u IO () -> StateT u IO Bool
- simpleDaemon :: Universe u => Daemon u
- startupHandler :: Universe u => u -> IO u
- shutdownHandler :: Universe u => u -> IO ()
- exceptionHandler :: Universe u => u -> SomeException -> IO (Bool, u)
- nothing :: StateT u IO ()
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 -> (Int, Int) -> StateT u IO () -> StateT u IO () -> StateT u IO BoolSource
runInteractingAgents :: (Universe u, Serialize (Agent u)) => AgentsProgram u -> (Int, Int) -> StateT u IO () -> StateT u IO () -> StateT u IO BoolSource
simpleDaemon :: Universe u => Daemon uSource
startupHandler :: Universe u => u -> IO uSource
shutdownHandler :: Universe u => u -> IO ()Source
exceptionHandler :: Universe u => u -> SomeException -> IO (Bool, u)Source