def ring_name(name), do: Module.concat([name, Ring])
def cluster_supervisor_name(name), do: Module.concat([name, ClusterSupervisor])
- defdelegate get(name, key), to: Ring
+ defdelegate get(name, key, timeout \\ :infinity), to: Ring
defdelegate put(name, key, value), to: Ring
defdelegate put_wildcard(name, header, key, value, split_on, join, wildcard), to: Ring
- defdelegate prefix(name, key, split_on, min), to: Ring
- defdelegate stream(name), to: Ring
- defdelegate wildcard(name, header, key, split_on, join, wildcard), to: Ring
+ defdelegate prefix(name, key, split_on, min, timeout \\ :infinity), to: Ring
+ defdelegate stream(name, timeout \\ :infinity), to: Ring
+
+ defdelegate wildcard(name, header, key, split_on, join, wildcard, timeout \\ :infinity),
+ to: Ring
end
)
end
- def get(name, key, timeout \\ 5000) do
+ def get(name, key, timeout) do
:gen_statem.call(ClusterKV.ring_name(name), {:get, key}, timeout)
end
- def prefix(name, key, split_on, min) do
- :gen_statem.call(ClusterKV.ring_name(name), {:prefix, key, split_on, min})
+ def prefix(name, key, split_on, min, timeout) do
+ :gen_statem.call(ClusterKV.ring_name(name), {:prefix, key, split_on, min}, timeout)
end
- def wildcard(name, header, key, split_on, join, wildcard) do
+ def wildcard(name, header, key, split_on, join, wildcard, timeout) do
:gen_statem.call(
ClusterKV.ring_name(name),
- {:wildcard, header, key, split_on, join, wildcard}
+ {:wildcard, header, key, split_on, join, wildcard},
+ timeout
)
end
- def stream(name) do
- :gen_statem.call(ClusterKV.ring_name(name), :stream)
+ def stream(name, timeout) do
+ :gen_statem.call(ClusterKV.ring_name(name), :stream, timeout)
end
def handle_resource(@handle_init, _, @init, %SL{data: %Ring{} = data} = sl) do