summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-06-07 12:47:34 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-06-07 12:47:34 +0200
commit9b55ecea81edbc12196a5818077fd38421f8f1a8 (patch)
treec6d590615695cacbb5a2a3f21fe20639292d134e /src/db
parentd99f1e8b0efedf1286ab15c656a0ea874823865f (diff)
Now it seems to work perfectly.
Getting both nodes to start made some unexpected issues about the hostnames appear, despite both using either "-name" or "-sname".
Diffstat (limited to 'src/db')
-rw-r--r--src/db/logic/db_access.erl16
-rw-r--r--src/db/struct/db_model.erl5
2 files changed, 20 insertions, 1 deletions
diff --git a/src/db/logic/db_access.erl b/src/db/logic/db_access.erl
index f589ba8..99d17ea 100644
--- a/src/db/logic/db_access.erl
+++ b/src/db/logic/db_access.erl
@@ -18,12 +18,22 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec get_value (list(sh_db_item:type())) -> ({'ok', any()} | 'not_found').
get_value ([]) -> not_found;
get_value ([Regval]) -> {ok, sh_db_item:get_value(Regval)}.
+-spec read_transaction (atom(), any()) -> ({'ok', any()} | 'not_found').
read_transaction (DB, ID) ->
get_value(mnesia:read(DB, ID)).
+-spec insert_transaction
+ (
+ atom(),
+ any(),
+ sh_db_user:permission(),
+ any()
+ )
+ -> 'ok'.
insert_transaction (DB, ID, Perm, Value) ->
StoredItem = sh_db_item:new(ID, Perm, Value),
% FIXME: handle return value, mnesia:write -> (transaction abort | ok).
@@ -31,6 +41,7 @@ insert_transaction (DB, ID, Perm, Value) ->
mnesia:write(DB, StoredItem, sticky_write),
ok.
+-spec query_transaction (sh_db_query:type()) -> 'ok'.
query_transaction (Query) ->
DB = sh_db_query:get_database(Query),
ID = sh_db_query:get_entry_id(Query),
@@ -44,11 +55,16 @@ query_transaction (Query) ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec read (atom(), any())
+ -> ({'aborted', any()} | {'atomic', ({'ok', any()} | 'not_found')}).
read (DB, ID) ->
mnesia:transaction(fun read_transaction/2, [DB, ID]).
+-spec insert (atom(), any(), sh_db_user:permission(), any())
+ -> ({'aborted', any()} | {'atomic', 'ok'}).
insert (DB, ID, Perm, Value) ->
mnesia:transaction(fun insert_transaction/4, [DB, ID, Perm, Value]).
+-spec query (sh_db_query:type()) -> ({'aborted', any()} | {'atomic', 'ok'}).
query (Query) ->
mnesia:transaction(fun query_transaction/1, [Query]).
diff --git a/src/db/struct/db_model.erl b/src/db/struct/db_model.erl
index 8097bcb..3e00b95 100644
--- a/src/db/struct/db_model.erl
+++ b/src/db/struct/db_model.erl
@@ -45,6 +45,7 @@ new (DBName, StorageFile, Neighbors) ->
neighbors = Neighbors
}.
+-spec start(type()) -> 'ok'.
start (Model) ->
DBName = Model#db_model.name,
StorageFile = Model#db_model.store_file,
@@ -68,4 +69,6 @@ start (Model) ->
{type, ordered_set},
{local_content, false}
]
- ).
+ ),
+
+ ok.