Current section
Files
Jump to
Current section
Files
src/pgo_connection_starter.erl
-module(pgo_connection_starter).
-export([start_link/2]).
-export([init/1,
callback_mode/0,
connect/3]).
-include("pgo.hrl").
-record(data, {sup :: pid(),
pool :: atom(),
size :: integer()}).
start_link(Pool, Size) ->
gen_statem:start_link(?MODULE, [self(), Pool, Size], []).
init([Sup, Pool, Size]) ->
{ok, connect, #data{sup=Sup, pool=Pool, size=Size},
{next_event, internal, start_connections}}.
callback_mode() ->
state_functions.
connect(internal, start_connections, #data{sup=Sup, size=Size}) ->
ConnSup = pgo_pool_sup:whereis_child(Sup, connection_sup),
[{ok, _} = pgo_connection_sup:start_child(ConnSup) || _ <- lists:seq(1, Size)],
TypeServer = pgo_pool_sup:whereis_child(Sup, type_server),
pgo_type_server:reload(TypeServer),
keep_state_and_data.