cmp.st-mem
clean-register!
(clean-register! mp-id)Closes and de-registers! all listeners belonging to mp-id .
clear!
(clear! x)Clears the key x. If x is a vector the function stu/vec->key is used for the conversion of x to a string.
close-listener!
(close-listener! l)Closes the given listener generated by gen-listener.
Example:
;; generate
(def l (gen-listener "ref" "ctrl" msg->key))
;; close
(close-listener! l)
de-register!
(de-register! mp-id struct no func)(de-register! mp-id struct no func level)De-registers the listener with the key mp-id in the listeners atom.
filter-keys-where-val
(filter-keys-where-val pat x)Returns a list of all keys belonging to the pattern pat where the value is equal tox.
Example:
(filter-keys-where-val "ref@definitions@*@class" "wait")
;; ("ref@definitions@0@class"
;; "ref@definitions@2@class"
;; "ref@definitions@1@class")
gen-listener
(gen-listener mp-id l2 l3 l4 callback)Returns a listener for published keyspace notifications. Don’t forget to close-listener!
Example:
;; generate and close
(close-listener! (gen-listener "ref" "ctrl" msg->key))
key->val
(key->val k)Returns the value for the given key (k) and cast it to a clojure type.
msg->key
(msg->key [kind l1 l2 l3])Extracts the key from a published keyspace notification message (pmessage).
Example:
(def msg ["pmessage"
"__keyspace@0*__:ref@*@*@ctrl*"
"__keyspace@0__:ref@container@0@ctrl"
"set"])
(st/msg->key msg)
;; "ref@container@0@ctrl"
reg-key
(reg-key mp-id struct no func level)Generates a registration key for the listener atom. The level param allows to register more than one listener for one pattern.
register!
(register! mp-id struct no func cb!)(register! mp-id struct no func cb! level)Generates and registers a listener under the key mp-id in the listeners atom. The cb! function dispatches depending on the result.
set-state!
(set-state! k state msg)(set-state! k state)Function is used by the workers to set state. An optional log message may be provided.
subs-pat
(subs-pat mp-id l2 l3 l4)Generates subscribe patterns which matches depending on:
l2
containerdefinitions
l3
0…n
l4
ctrlstatedefinition