tricycle/system-actor-model/8.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 370f6c42a66a of https://github.com/bellroy/system-actor-model (zip prefix tricycle-system-actor-model-f9bf615/, America/Los_Angeles times): the zip is byte-identical to the one package.elm-lang.org recorded, SHA-1 66800e0ed8b7af3ec7f7ea24e1579a08e4e550cd.

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/8.0.0/

System.Message

System Messages

type alias SystemMessage applicationAddress applicationActorName applicationMessage =
SystemMessage
applicationAddress
applicationActorName
applicationMessage

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
            ]
    )
applicationActorName
-> ( PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage
)
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Spawn an Actor

Value
-> applicationActorName
-> ( PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage
)
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Spawn an Actor with given flags (as an encoded JSON Value)

PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Add a PID to the System's view

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

applicationAddress
-> PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Add a PID to a given applicationAddress

You can send messages to Addresses just like you can send messages to a PID.

List applicationActorName
-> ( List PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage
)
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Spawn multiple Actors

List ( applicationActorName, Value )
-> ( List PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage
)
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Spawn multiple Actors with given flags

Removing and Destroying

PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

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.

PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Remove a PID from the System view

applicationAddress
-> PID
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Remove a PID from a given applicationAddress

Actor Communication

PID
-> applicationMessage
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Send a message to a PID.

applicationAddress
-> applicationMessage
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Send a message to an applicationAddress.

PID
-> applicationAddress
-> applicationMessage
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Send a message to a PID only when it's on the given applicationAddress.

Utility

List
(SystemMessage
applicationAddress
applicationActorName
applicationMessage
)
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Batch perform a list of messages

spawn MyActorWorker
    (\pid ->
        batch
            [ populateAddress pid
            , populateView pid
            ]
    )
SystemMessage
applicationAddress
applicationActorName
applicationMessage

Don't do anything

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

Converts a generic msg into Cmd.

Application

String
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Update the document title

Log

log :
LogMessage
applicationAddress
applicationActorName
applicationMessage
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Log a LogMessage

This will trigger the onLogMessage function you provided while initializing your application.

LogMessage
applicationAddress
applicationActorName
applicationMessage
-> SystemMessage
applicationAddress
applicationActorName
applicationMessage

Convenience function that ignores all logs