getItem, setItem complete. Added scripts.
This commit is contained in:
parent
e38bab5054
commit
ee4059ac5a
6 changed files with 95 additions and 0 deletions
4
mnesia/build_db
Executable file
4
mnesia/build_db
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
erlc -o . ggs_db.erl
|
||||
erlc -o . ggs_db_test.erl
|
4
mnesia/build_test_db
Executable file
4
mnesia/build_test_db
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
./build_db
|
||||
./test_db
|
47
mnesia/ggs_db.erl
Normal file
47
mnesia/ggs_db.erl
Normal file
|
@ -0,0 +1,47 @@
|
|||
%%%%----------------------------------------------------
|
||||
%%% @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).
|
||||
|
6
mnesia/ggs_db.hrl
Normal file
6
mnesia/ggs_db.hrl
Normal file
|
@ -0,0 +1,6 @@
|
|||
%% gamedb.hrl
|
||||
|
||||
-record(player, {id, name}).
|
||||
-record(data, {key, value}).
|
||||
|
||||
|
31
mnesia/ggs_db_test.erl
Normal file
31
mnesia/ggs_db_test.erl
Normal file
|
@ -0,0 +1,31 @@
|
|||
-module(ggs_db_test).
|
||||
%-compile({no_auto_import,[get/1,set/2]}).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
|
||||
%ggs_db_test_() ->
|
||||
% {spawn,
|
||||
% {setup, fun setup/0, fun cleanup/1,[ fun ggs_db_test/0 ]}
|
||||
% }.
|
||||
|
||||
|
||||
%Key should be a tuple of two elements
|
||||
setup_test() ->
|
||||
mnesia:start(),
|
||||
ggs_db:init(),
|
||||
ggs_db:setItem("dbname","nsname","keyname","Hello"),
|
||||
?assertMatch({atomic,"Hello"},ggs_db:getItem("dbname","nsname","keyname")),
|
||||
mnesia:stop().
|
||||
|
||||
%cleanup(Val) ->
|
||||
% mnesia:stop().
|
||||
|
||||
|
||||
|
||||
%tests() ->
|
||||
% ggs_db_test().
|
||||
|
||||
%ggs_db_test() ->
|
||||
% ggs_db:set(0, "Hello"),
|
||||
%io:format("~s",[Val]),
|
||||
% ?assertMatch({atomic,"Hello"},ggs_db:get(0)).
|
||||
|
3
mnesia/test_db
Executable file
3
mnesia/test_db
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
erl -eval 'eunit:test(ggs_db_test), q().'
|
Reference in a new issue