Core API for creating and managing first class state objects.
Core API for creating and managing first class state objects.
(defstate name doc-string? attr-map? body)
Create a State object, using the optional :start, :stop and :meta expressions, and bind it to a var with the given name in the current namespace. Supports metadata on the name, a docstring and an attribute map.
Create a State object, using the optional :start, :stop and :meta expressions, and bind it to a var with the given name in the current namespace. Supports metadata on the name, a docstring and an attribute map.
(state & exprs)
Create a state object, using the optional :start, :stop, :name and :meta expressions. The first forms are implicitly considered as the :start expression, if not qualified otherwise. Returned State object implements IDeref, IPending, Closeable, Named, IMeta and IObj.
Create a state object, using the optional :start, :stop, :name and :meta expressions. The first forms are implicitly considered as the :start expression, if not qualified otherwise. Returned State object implements IDeref, IPending, Closeable, Named, IMeta and IObj.
(state* {:keys [ns-str name-str start-fn stop-fn meta]
:or {start-fn (fn []) stop-fn (fn [_])}})
Low-level function to create a State object. All keys are optional.
The :start-fn
value must be a 0-arity function. The :stop-fn
value must be a 1-arity function. The :meta
value must be a map.
Low-level function to create a State object. All keys are optional. The `:start-fn` value must be a 0-arity function. The `:stop-fn` value must be a 1-arity function. The `:meta` value must be a map.
(state? obj)
Returns true if obj is a State object.
Returns true if obj is a State object.
(status)
Returns a list of active states, in realization order.
Returns a list of active states, in realization order.
(stop)
Stop the active states in the reverse order they were realized.
Stop the active states in the reverse order they were realized.
Add watches to this var to be notified of new (started) or old (closed) states.
Add watches to this var to be notified of new (started) or old (closed) states.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close