Packages

A simple Elixir package that provides circuit breaker manager

Current section

Files

Jump to
virgil lib manager ets adapter.ex
Raw

lib/manager/ets/adapter.ex

defmodule Virgil.Manager.Ets.Adapter do
@moduledoc false
@behaviour Virgil.Adapter
alias Virgil.Circuit
@impl true
def is_closed?(%Circuit{name: circuit_name}),
do: {:ok, GenServer.call(:ets_manager, {:is_closed?, circuit_name})}
@impl true
def close(%Circuit{name: circuit_name}),
do: GenServer.cast(:ets_manager, {:close, circuit_name})
@impl true
def open(%Circuit{name: circuit_name}),
do: GenServer.cast(:ets_manager, {:open, circuit_name})
@impl true
def increment_error_counter(%Circuit{name: circuit_name}),
do: GenServer.call(:ets_manager, {:increment_counter, circuit_name})
end