-module(erlang_adk_session).
-export([init/0, save/2, load/1, delete/1]).
-define(TABLE, adk_sessions).
%% @doc Initialize the ETS table. Should be called by the application startup.
init() ->
ets:new(?TABLE, [set, public, named_table, {read_concurrency, true}, {write_concurrency, true}]).
%% @doc Save memory list for a given SessionId
save(SessionId, Memory) ->
ets:insert(?TABLE, {SessionId, Memory}),
ok.
%% @doc Load memory list for a given SessionId. Returns empty list if not found.
load(SessionId) ->
case ets:lookup(?TABLE, SessionId) of
[{SessionId, Memory}] -> Memory;
[] -> []
end.
%% @doc Delete a session
delete(SessionId) ->
ets:delete(?TABLE, SessionId),
ok.