From 914e6a10b98681f9db2ba4a611c62888570b09db Mon Sep 17 00:00:00 2001 From: Able <abl3theabove@gmail.com> Date: Sun, 16 Mar 2025 19:37:28 -0500 Subject: [PATCH] breakage --- lib/rl_repo.ex | 8 +++++++- lib/rl_repo/application.ex | 1 + lib/router/router.ex | 25 +++++++++++++++++++++++++ lib/router/router_api.ex | 15 +++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 lib/router/router.ex create mode 100644 lib/router/router_api.ex diff --git a/lib/rl_repo.ex b/lib/rl_repo.ex index 62aed95..3bc61a7 100644 --- a/lib/rl_repo.ex +++ b/lib/rl_repo.ex @@ -13,8 +13,14 @@ defmodule RlRepo do Logger.info("Listening on port #{port}") - # Spawn RepoLookup + # Spawn the router. + Task.Supervisor.start_child(Router, fn -> + Router.start() + end) + + + # Spawn RepoLookup Task.Supervisor.start_child(RlRepo.QueryServices, fn -> RepoLookup.start_repo_lookup() end) diff --git a/lib/rl_repo/application.ex b/lib/rl_repo/application.ex index f97509f..38dcb39 100644 --- a/lib/rl_repo/application.ex +++ b/lib/rl_repo/application.ex @@ -11,6 +11,7 @@ defmodule RlRepo.Application do children = [ {Task.Supervisor, name: RlRepo.QueryServices}, + {Task.Supervisor, name: Router}, # Starts a worker by calling: RlRepo.Worker.start_link(arg) # {RlRepo.Worker, arg} diff --git a/lib/router/router.ex b/lib/router/router.ex new file mode 100644 index 0000000..4e59b24 --- /dev/null +++ b/lib/router/router.ex @@ -0,0 +1,25 @@ +defmodule Router do + require Logger + + def start() do + info = %{routes: %{}} + Process.register(self(), :router) + + loop_router(info) + end + + defp loop_router(info) do + receive do + {:route, value, return_pid} -> + Logger.info "Route recieved #{value}" + send(return_pid, {:route, :exists, "template example."}) + # code + {:route, :register, route, template} -> + Logger.info "Route registration attempt." + end + + + + loop_router(info) + end +end diff --git a/lib/router/router_api.ex b/lib/router/router_api.ex new file mode 100644 index 0000000..2458799 --- /dev/null +++ b/lib/router/router_api.ex @@ -0,0 +1,15 @@ +defmodule Router.RouterApi do + require Logger + + # Search for a route. + def lookup_route(route) do + send(:router, {:route, route, self()}) + + receive do + {:route, :exists, template} -> + Logger.info "Found route." + # code + end + + end +end