Liking cljdoc? Tell your friends :D

tools.drilling.bulbo

A simple bulletin board for managing channels in an event bus system. This is extracted from closed source code I've been using for a while. It's not feature complete, because I did not need all the features. But as an open-source library I will make time to add all the HOFs in core.async.

I use this setup within integrant keys allowing for a visual way to see how channels are connected. Because of the way core.async manages it's mults, taps, pubs and subs, closing almost all the channels occurs by closing the event bus. I've never bothered to add a close function to this library because the wiring is meant to be immutable. All channels are added and wired at integrant init and not intended to be changed after that. Although if your needs differ. As a plus, mixing this with integrant.repl.state and portal makes it dead simple to reason about what is happening in your system.

A simple bulletin board for managing channels in an event bus system. This is extracted from closed source code I've been using for a while. It's not feature complete, because I did not need all the features. But as an open-source library I will make time to add all the HOFs in core.async.

I use this setup within integrant keys allowing for a visual way to see how channels are connected. Because of the way core.async manages it's mults, taps, pubs and subs, closing almost all the channels occurs by closing the event bus. I've never bothered to add a close function to this library because the wiring is meant to be immutable. All channels are added and wired at integrant init and not intended to be changed after that. Although if your needs differ. As a plus, mixing this with integrant.repl.state and portal makes it dead simple to reason about what is happening in your system.
raw docstring

add-chan!clj/s

(add-chan! m)
(add-chan! bulbo ch-id)
(add-chan! bulbo ch-id ch)

Generic add channel function. If a channel is provided, it will be used. Otherwise, a new channel will be created.

Generic add channel function. If a channel is provided, it will be used. Otherwise, a new channel will be created.
sourceraw docstring

add-merge!clj/s

(add-merge! m)
(add-merge! bulbo merge-ident ch-idents)

Adds a merge of the supplied channels.

Adds a merge of the supplied channels.
sourceraw docstring

add-mixer!clj/s

(add-mixer! m)
(add-mixer! bulbo mixer-ident)

Adds a mixer and output channel, attaching channels if provided.

Adds a mixer and output channel, attaching channels if provided.
sourceraw docstring

add-mult!clj/s

(add-mult! m)
(add-mult! bulbo mult-id src-id)

Creates a new mult, links it to it's source and adds it to the bulletin board.

Creates a new mult, links it to it's source and adds it to the bulletin board.
sourceraw docstring

add-pub!clj/s

(add-pub! m)
(add-pub! bulbo pub-ident src-ident rule)

Adds a pub, linking it to a source, and adds it to the bulletin board.

Adds a pub, linking it to a source, and adds it to the bulletin board.
sourceraw docstring

add-sub!clj/s

(add-sub! m)
(add-sub! bulbo sub-ident pub-ident topic)

Adds a sub to a pub. Must provide an existing channel.

Adds a sub to a pub. Must provide an existing channel.
sourceraw docstring

add-tap!clj/s

(add-tap! m)
(add-tap! bulbo tap-ident mult-ident)
(add-tap! bulbo tap-ident tap-ch mult-ident)

Creates a tap, taps it into a mult and adds it to the bulletin board.

Creates a tap, taps it into a mult and adds it to the bulletin board.
sourceraw docstring

add-to-bulbo!clj/s

(add-to-bulbo! bulbo comms)
source

add-to-mix!clj/s

(add-to-mix! m)
(add-to-mix! bulbo chan-ident mixer-ident)
(add-to-mix! bulbo chan-ident mixer-ident toggle-config)

Adds a channel to a mix, setting it's config if provided.

Adds a channel to a mix, setting it's config if provided.
sourceraw docstring

bulbo!clj/s

(bulbo! & ms)

Wires a channel into the bulletin board.

Wires a channel into the bulletin board.
sourceraw docstring

dir-addclj/s

(dir-add m)
(dir-add bulbo id v)
(dir-add bulbo ln id v)
source

dir-path-forclj/s

(dir-path-for id)
(dir-path-for ln id)
source

extract-chan-nsclj/s

(extract-chan-ns id)

Takes the channel ns from a channel's coordinates. In the event of nested coordinates, takes the last ns.

Takes the channel ns from a channel's coordinates. In the event of nested coordinates, takes the last ns.
sourceraw docstring

flattenvclj/s

(flattenv thing)

Flattens a collection and returns a vector

Flattens a collection and returns a vector
sourceraw docstring

id->fclj/s

(id->f id)

Takes an id and returns the function that creates, wires, and adds it to the bulletin board.

Takes an id and returns the function that creates, wires, and adds it to the bulletin board.
sourceraw docstring

mute-chan!clj/s

(mute-chan! m)
(mute-chan! bulbo mixer-ident chan-ident)

Mutes a channel in a mix.

Mutes a channel in a mix.
sourceraw docstring

namespace-to-subdir-registryclj/s

source

ns->creation-f-registryclj/s

source

pause-chan!clj/s

(pause-chan! m)
(pause-chan! bulbo mixer-ident chan-ident)

Pauses a channel in a mix.

Pauses a channel in a mix.
sourceraw docstring

solo-chan!clj/s

(solo-chan! m)
(solo-chan! bulbo mixer-ident chan-ident)

Solos a channel in a mix.

Solos a channel in a mix.
sourceraw docstring

subdir-forclj/s

(subdir-for id)
source

toggle-chan!clj/s

(toggle-chan! m)
(toggle-chan! bulbo mixer-ident chan-ident toggle-config)

Changes the mix settings on a channel.

Changes the mix settings on a channel.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close