diff --git a/mnesia/.gamedb.erl.swp b/mnesia/.gamedb.erl.swp new file mode 100644 index 0000000..469b1f8 Binary files /dev/null and b/mnesia/.gamedb.erl.swp differ diff --git a/mnesia/gamedb.erl b/mnesia/gamedb.erl new file mode 100644 index 0000000..751eb92 --- /dev/null +++ b/mnesia/gamedb.erl @@ -0,0 +1,50 @@ +%%%%---------------------------------------------------- +%%% @author Mattias Pettersson +%%% @copyright 2011 Mattias Pettersson +%%% @doc Database for runtime game variable storage. +%%% @end + + Test Mnesia +-module(gamedb). +-import(mnesia). +-export([init/0,insert_player/1,example_player/0,read_player/1,test_player/0]). +-include("gamedb.hrl"). + +%%----------------------------------------------------- +%% Creation +%%----------------------------------------------------- +init() -> + mnesia:create_table(player, [{attributes, record_info(fields, player)}]). + +%%----------------------------------------------------- +%% Test +%%----------------------------------------------------- +test_player() -> + insert_player(example_player()), + read_player(0001). + +example_player() -> + #player{id = 0001, + name = "Tux"}. + +%%----------------------------------------------------- +%% Insertions +%%----------------------------------------------------- +insert_player(Player) -> + Fun = fun() -> + mnesia:write(Player) + end, + mnesia:transaction(Fun). + + +%%----------------------------------------------------- +%% Querries +%%----------------------------------------------------- +read_player(Player_Key) -> + Fun = fun() -> + [P] = mnesia:read(player, Player_Key), + Name = P#player.name, + io:format("Player name: ~s~n",[Name]) + end, + mnesia:transaction(Fun). + diff --git a/mnesia/gamedb.hrl b/mnesia/gamedb.hrl new file mode 100644 index 0000000..1ae9c8f --- /dev/null +++ b/mnesia/gamedb.hrl @@ -0,0 +1,6 @@ +%% gamedb.hrl + +-record(player, {id, name}). + + + diff --git a/mnesia/gamedb_usage.txt b/mnesia/gamedb_usage.txt new file mode 100644 index 0000000..b3a07a0 --- /dev/null +++ b/mnesia/gamedb_usage.txt @@ -0,0 +1,12 @@ +1. From terminal: erl -mnesia dir '"/home/user/dir/to/GGS/GameDB.Player"' +2. mnesia:create_schema([node()]). +3. mnesia:start(). +4. c(gamedb). +5. gamedb:init(). +6. mnesia:info(). +7. gamedb:test_player(). + +Last output should be: + Player name: Tux + {atomic,ok} +