Skip to content

Instantly share code, notes, and snippets.

@RaimoNiskanen
RaimoNiskanen / code_lock.ex
Last active February 9, 2019 21:27
gen_statem Code Lock Example in Elixir for SF CodeBeam 2018
defmodule CodeLock do
@name :code_lock
## Start and stop
def start_link(code) do
:gen_statem.start_link({:local,@name}, __MODULE__, code, [])
end
def stop, do: :gen_statem.stop @name
def callback_mode, do: [:state_functions,:state_enter]
@RaimoNiskanen
RaimoNiskanen / code_lock.erl
Last active January 1, 2023 19:03
gen_statem Code Lock Example in Erlang for SF CodeBeam 2018
-module(code_lock).
-behaviour(gen_statem).
-define(NAME, code_lock).
-export([down/1,up/1,code_length/0]). % API
-export([start_link/1,stop/0]). % Server
-export([init/1,callback_mode/0,terminate/3]). % Behaviour
-export([locked/3,open/3]). % States