defmodule Dbus do use Application require Logger alias Dbus.Db, as: DB alias Dbus.PubSub, as: PS alias Dbus.Queue, as: Q alias Dbus.Exec, as: E alias Dbus.Health, as: H def start(_type, _args) do import Supervisor.Spec, warn: false children = [worker(Dbus.Redis, [])] opts = [strategy: :one_for_one, name: Dbus.Supervisor] Supervisor.start_link(children, opts) end def kill(), do: DB.kill def register(topic), do: DB.register(topic) def unregister(topic), do: DB.unregister(topic) def pub(topic, msg), do: PS.pub(topic, msg) def sub(topic, my_fn), do: PS.sub(topic, my_fn) def is_topic(topic), do: Q.is_topic(topic) def topics(), do: Q.topics def peek(topic), do: Q.peek(topic) def peek(topic, num), do: Q.peek(topic, num) def pop(topic), do: Q.pop(topic) def pop(topic, num), do: Q.pop(topic, num) def size(topic), do: Q.size(topic) def num_total(topic), do: H.num_total(topic) def num_processed(topic), do: H.num_processed(topic) def num_failed(topic), do: H.num_failed(topic) def processed(topic), do: H.processed(topic) def failed(topic), do: H.failed(topic) def process(topic, my_fn), do: E.process(topic, my_fn) def process(topic, my_fn, num), do: E.process(topic, my_fn, num) def tick(), do: H.tick def tick(topic), do: H.tick(topic) def tock(), do: H.tock def tock(topic), do: H.tock(topic) end