47 lines
1.3 KiB
Erlang
47 lines
1.3 KiB
Erlang
%%%%----------------------------------------------------
|
|
%%% @author Mattias Pettersson <mattiaspgames@gmail.com>
|
|
%%% @copyright 2011 Mattias Pettersson
|
|
%%% @doc Database for runtime game variable storage.
|
|
%%% @end
|
|
|
|
-module(ggs_db).
|
|
-import(mnesia).
|
|
-export([init/0,setItem/4,getItem/3]).
|
|
-include("ggs_db.hrl").
|
|
|
|
%%-----------------------------------------------------
|
|
%% Creation
|
|
%%-----------------------------------------------------
|
|
init() ->
|
|
mnesia:create_table(data, [{attributes, record_info(fields, data)}]).
|
|
|
|
%%-----------------------------------------------------
|
|
%% Test
|
|
%%-----------------------------------------------------
|
|
|
|
%test_data() ->
|
|
% set(0, "Hello"),
|
|
% get(0).
|
|
|
|
%%-----------------------------------------------------
|
|
%% Insertions
|
|
%%-----------------------------------------------------
|
|
setItem(Db,Ns,Key,Value) ->
|
|
Fun = fun() ->
|
|
Data = #data{key = {Db,Ns,Key}, value = Value},
|
|
mnesia:write(Data)
|
|
end,
|
|
mnesia:transaction(Fun).
|
|
|
|
|
|
|
|
%%-----------------------------------------------------
|
|
%% Querries
|
|
%%-----------------------------------------------------
|
|
getItem(Db,Ns,Key) ->
|
|
Fun = fun() ->
|
|
[Data] = mnesia:read(data, {Db,Ns,Key}),
|
|
Data#data.value
|
|
end,
|
|
mnesia:transaction(Fun).
|
|
|