Wardrik.Declarations behaviour (wardrik v0.1.0-rc.1)

Copy Markdown

Agents defined outside the API, such as agent files a daemon reads.

Wardrik.start_link(name: MyApp.AgentRuntime, declarations: {MyApp.AgentFiles, dir: "agents"})

The API refuses to forget a declared agent, since its declaration would bring it back. Wardrik.Deployment.reload/2 reloads declarations before it updates agents to their definitions.

Summary

Callbacks

Returns whether agent_id is declared. The API won't forget a declared agent.

Reads the declarations again and defines their agents. Returns a line for each failure.

Functions

Returns whether agent_id is declared.

Reloads the declarations, if any. Returns a line for each agent that couldn't be defined.

Callbacks

declared?(config, agent_id)

@callback declared?(config :: term(), agent_id :: String.t()) :: boolean()

Returns whether agent_id is declared. The API won't forget a declared agent.

reload(config)

@callback reload(config :: term()) :: [String.t()]

Reads the declarations again and defines their agents. Returns a line for each failure.

Functions

declared?(wardrik, agent_id)

@spec declared?(Wardrik.t(), String.t()) :: boolean()

Returns whether agent_id is declared.

reload(wardrik)

@spec reload(Wardrik.t()) :: [String.t()]

Reloads the declarations, if any. Returns a line for each agent that couldn't be defined.