tricycle/system-actor-model/1.0.0

NOTE: the latest version is 9.0.0

Renamed to bellroy/system-actor-model. That is where the repository lives now. It has not been published as a package under the new name.

Versions published as tricycle/system-actor-model still install under that name. 26 versions of 26 come from the new location (see their notes).

Rerouted (renamed, verified). The GitHub user or repository was renamed. The tag is still there, at the new name. The Lamdera package server serves a copy recovered from https://github.com/bellroy/system-actor-model.

What we checked: The repo moved to github.com/bellroy/system-actor-model. Rebuilt with git archive from commit bd4a098f8630 of https://github.com/bellroy/system-actor-model (zip prefix tricycle-system-actor-model-f840c7d/, America/Los_Angeles times): the zip is byte-identical to the one package.elm-lang.org recorded, SHA-1 75a568162e03bd9c885662350010915bcd0efeb8.

The Lamdera compiler uses this copy and prints a one-line notice saying so. elm itself fails to download this version.

Details · package.elm-lang.org's zip: https://github.com/tricycle/system-actor-model/zipball/1.0.0/

System.Message

System Messages

type alias SystemMessage address actorName wrappedMsg =
Message address actorName wrappedMsg

The type of the System Messages

Spawning and Populating

Spawn an Actor and add it to the System's view

spawn SomeActor populateView

Spawn an Actor, add it to the System's view, and assign it an Address

spawn
    SomeActor
    (\pid ->
        batch
            [ populateView pid
            , populateAddress pid
            ]
    )
actorName
-> (PID -> Message address actorName wrappedMsg)
-> Message address actorName wrappedMsg

Spawn an Actor

populateView : PID -> Message address actorName wrappedMsg

Add a PID to the System's view

The System will render views in the order it receives it.

populateAddress : address -> PID -> Message address actorName wrappedMsg

Add a PID to the System's view

The System will render views in the order it receives it.

Destroying

kill : PID -> Message address actorName wrappedMsg

Kill a process

This will trigger the Actors onKill event on which you can decide what to do with this Message.

There is a Default behaviour available that will remove the Process from the System.

Actor Communication

sendToPid : PID -> wrappedMsg -> Message address actorName wrappedMsg

Send a message to a PID.

sendToAddress : address -> wrappedMsg -> Message address actorName wrappedMsg

Send a message to an Address

Utility

List (Message address actorName wrappedMsg)
-> Message address actorName wrappedMsg

Batch perform a list of messages

noOperation : Message address actorName wrappedMsg

Don't do anythinge

This can be handy for instance when you want to spawn an Actor but don't do anything with it's resulting PID.

spaw MyActorWorker (always noOperation)
toCmd : msg -> Cmd msg

Converts a msg in to Cmd.

Application

updateDocumentTitle : String -> Message address actorName wrappedMsg

Update the document title