Packages

A library for distributed reactive programming with flexible consistency guarantees drawing from QUARP and Rx.. Features the familiar behaviours and event streams in the spirit of FRP.

Current section

Files

Jump to
bquarp lib middleware evaluator.ex
Raw

lib/middleware/evaluator.ex

defmodule ReactiveMiddleware.Evaluator do
use GenServer
require Logger
alias GenServer
####################
# CLIENT INTERFACE #
####################
@doc """
Start the GenServer.
"""
def start_link(args \\ []) do
GenServer.start_link(__MODULE__, args, name: __MODULE__)
end
@doc """
Evaluates a (remotely) sent program locally.
"""
def evaluate(program) do
GenServer.cast(__MODULE__, {:deploy_program, program})
end
####################
# SERVER CALLBACKS #
####################
def init([]) do
Logger.info("Starting the Evaluator")
{:ok, %{}}
end
def handle_call({:evaluate, program}, _from, state) do
program.()
{:reply, :ok, state}
end
end