test/support/forge_wal_probe.ex

58e6347eeb72 · 827 B

defmodule OpenAgents.Forge.WAL.Probe do
  @moduledoc false

  @behaviour OpenAgents.Forge.WAL

  alias OpenAgents.Forge.WAL.Local

  @impl true
  def read_index(repo) do
    if pid = Application.get_env(:openagents, :forge_wal_probe_pid) do
      send(pid, {__MODULE__, :read_index, repo})
    end

    Local.read_index(repo)
  end

  @impl true
  defdelegate cas_index(repo, expected, index), to: Local

  @impl true
  defdelegate put_entry(repo, seq, payload), to: Local

  @impl true
  defdelegate put_entry_file(repo, seq, path), to: Local

  @impl true
  defdelegate get_entry(repo, object_key), to: Local

  @impl true
  defdelegate get_entry_file(repo, object_key, path), to: Local

  @impl true
  defdelegate put_object(repo, object_key, payload), to: Local

  @impl true
  defdelegate delete_repo(repo), to: Local
end