| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 18:02:26 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-11 18:02:26 +0200 | 
| commit | acb9dd3220a3edcac93aa11d1d74d008e2fb23ed (patch) | |
| tree | 98b45af3f7eb9c7d812ed33a07e6a0f665a7a8cd /src/shared/io/shr_database.erl | |
| parent | fde827cba1ff3d889135c74ee1978098465fd200 (diff) | |
"sh_" -> "shr_".
Diffstat (limited to 'src/shared/io/shr_database.erl')
| -rw-r--r-- | src/shared/io/shr_database.erl | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/src/shared/io/shr_database.erl b/src/shared/io/shr_database.erl new file mode 100644 index 0000000..bffcb9f --- /dev/null +++ b/src/shared/io/shr_database.erl @@ -0,0 +1,58 @@ +-module(shr_database). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-export +( +   [ +      insert/4, +      fetch/2, +      commit/1 +   ] +). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec get_db_node () -> node(). +get_db_node () -> list_to_atom("db_node@" ++ net_adm:localhost()). + +-spec do_remote_operation (atom(), list(any())) -> +   ( +      {'badrpc', any()} +      | {'aborted', any()} +      | {'atomic', ({'ok', any()} | 'ok' | 'not_found')} +   ). +do_remote_operation (Op, Params) -> +   rpc:call(get_db_node(), db_access, Op, Params). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec insert (atom(), any(), shr_db_user:permission(), any()) -> 'ok'. +insert (DB, ObjectID, Permission, Value) -> +   {atomic, _} = do_remote_operation(insert, [DB, ObjectID, Permission, Value]), +   io:format +   ( +      "~nshr_database:insert(~p) -> ok.~n", +      [{DB, ObjectID, Permission, Value}] +   ), + +   ok. + +-spec fetch (atom(), any()) -> ({'ok', any()} | 'not_found'). +fetch (DB, ObjectID) -> +   {atomic, Reply} = do_remote_operation(read, [DB, ObjectID]), +   io:format("~nshr_database:fetch(~p) -> ~p.~n", [{DB, ObjectID}, Reply]), +   Reply. + +-spec commit (shr_db_query:type()) -> 'ok'. +commit (Query) -> +   {atomic, ok} = do_remote_operation(query, [Query]), +   io:format("~nshr_database:commit(~p) -> ok.~n", [Query]), +   ok. | 


