| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-12-12 21:06:12 +0100 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-12-12 21:06:12 +0100 | 
| commit | c7900a01ff8028be4ae1b73cd4c1fe3dfef13200 (patch) | |
| tree | bfcace674c9cdb611ec7fcfdcbb50b03fc385e72 /src/ataxia_client.erl | |
| parent | d05a5094ba9e3fd7c5b2e86900742b626b674828 (diff) | |
...
Diffstat (limited to 'src/ataxia_client.erl')
| -rw-r--r-- | src/ataxia_client.erl | 100 | 
1 files changed, 56 insertions, 44 deletions
| diff --git a/src/ataxia_client.erl b/src/ataxia_client.erl index f1b96e1..95b544f 100644 --- a/src/ataxia_client.erl +++ b/src/ataxia_client.erl @@ -13,9 +13,9 @@        insert_at/5,        insert/4,        remove/3, -      fetch/3, +      fetch/4,        reserve/3, -      commit/1 +      commit/4     ]  ). @@ -44,26 +44,26 @@ get_db_node_for (_ObjectID) ->        ataxia_security:permission(),        any()     ) -   -> 'ok'. -insert_at (DB, ObjectID, ReadPerm, WritePerm, Value) -> -   DBNode = get_db_node_for(ObjectID), +   -> ({'aborted', any()} | 'ok'). +insert_at (DB, ID, ReadPerm, WritePerm, Value) -> +   DBNode = get_db_node_for(ID), -   {atomic, _} = +   Reply =        rpc:call        (           DBNode, -         db_access, +         atexia_server,           insert_at, -         [DB, ObjectID, ReadPerm, WritePerm, Value] +         [DB, ID, ReadPerm, WritePerm, Value]        ),     io:format     ( -      "~nshr_database:insert_at(~p) ! ~p -> ok.~n", -      [{DB, ObjectID, ReadPerm, WritePerm, Value}, DBNode] +      "~nshr_database:insert_at(~p) ! ~p -> ~p.~n", +      [{DB, ID, ReadPerm, WritePerm, Value}, DBNode, Reply]     ), -   ok. +   Reply.  -spec insert     ( @@ -72,12 +72,12 @@ insert_at (DB, ObjectID, ReadPerm, WritePerm, Value) ->        ataxia_security:permission(),        any()     ) -   -> {'ok', binary()}. +   -> ({'ok', ataxia_id:type()} | {'aborted', any()}).  insert (DB, ReadPerm, WritePerm, Value) ->     DBNode = get_random_db_node(), -   {atomic, {ok, ID}} = -      rpc:call(DBNode, db_access, insert, [DB, ReadPerm, WritePerm, Value]), +   Reply = +      rpc:call(DBNode, atexia_server, insert, [DB, ReadPerm, WritePerm, Value]),     io:format     ( @@ -85,74 +85,86 @@ insert (DB, ReadPerm, WritePerm, Value) ->        [{DB, ReadPerm, WritePerm, Value}, DBNode]     ), -   {ok, ID}. +   Reply.  -spec fetch     (        atom(), -      binary(), -      ataxia_security:user() +      ataxia_security:user(), +      ataxic:type(), +      ataxia_id:type()     )     -> ({'ok', any()} | 'not_found'). -fetch (DB, ObjectID, Cred) -> -   DBNode = get_db_node_for(ObjectID), +fetch (DB, User, Selector, ID) -> +   DBNode = get_db_node_for(ID), -   {atomic, Reply} = rpc:call(DBNode, db_access, read, [DB, ObjectID, Cred]), +   Reply = rpc:call(DBNode, atexia_server, read, [DB, User, Selector, ID]),     io:format     (        "~nshr_database:fetch(~p) ! ~p -> ~p.~n", -      [{DB, ObjectID, Cred}, DBNode, Reply] +      [{DB, User, Selector, ID}, DBNode, Reply]     ),     Reply. --spec commit (shr_db_query:type()) -> 'ok'. -commit (Query) -> -   DBNode = get_db_node_for(shr_db_query:get_entry_id(Query)), +-spec commit +   ( +      atom(), +      ataxia_security:user(), +      ataxiac:meta(), +      ataxia_id:type() +   ) +   -> ('ok' | 'not_found'). +commit (DB, User, Op, ID) -> +   DBNode = get_db_node_for(ID), -   {atomic, ok} = rpc:call(DBNode, db_access, query, [Query]), +   Reply = rpc:call(DBNode, atexia_server, query, [DB, User, Op, ID]), -   io:format("~nshr_database:commit(~p) ! ~p -> ok.~n", [Query, DBNode]), +   io:format +   ( +      "~nataxia_client:commit(~p) ! ~p -> ~p.~n", +      [{DB, User, Op, ID}, DBNode, Reply] +   ), -   ok. +   Reply.  -spec remove     (        atom(), -      binary(), -      ataxia_security:user() +      ataxia_security:user(), +      ataxia_id:type()     )     -> ('ok' | 'not_found'). -remove (DB, ObjectID, Cred) -> -   DBNode = get_db_node_for(ObjectID), +remove (DB, User, ID) -> +   DBNode = get_db_node_for(ID), -   {atomic, _} = rpc:call(DBNode, db_access, remove, [DB, ObjectID, Cred]), +   Reply = rpc:call(DBNode, atexia_server, remove, [DB, User, ID]),     io:format     ( -      "~nshr_database:remove(~p) ! ~p -> ok.~n", -      [{DB, ObjectID, Cred}, DBNode] +      "~nataxia_client:remove(~p) ! ~p -> ~p.~n", +      [{DB, User, ID}, DBNode, Reply]     ), -   ok. +   Reply.  -spec reserve     (        atom(), -      binary(), -      ataxia_security:user() +      ataxia_security:user(), +      ataxia_id:type()     ) -   -> ('ok' | 'not_found'). -reserve (DB, ObjectID, Cred) -> -   DBNode = get_db_node_for(ObjectID), +   -> ('ok' | 'unavailable'). +reserve (DB, User, ID) -> +   DBNode = get_db_node_for(ID), -   {atomic, _} = rpc:call(DBNode, db_access, reserve, [DB, ObjectID, Cred]), +   Reply = rpc:call(DBNode, atexia_server, reserve, [DB, User, ID]),     io:format     ( -      "~nshr_database:reserve(~p) ! ~p -> ok.~n", -      [{DB, ObjectID, Cred}, DBNode] +      "~nataxia_client:reserve(~p) ! ~p -> ~p.~n", +      [{DB, User, ID}, DBNode, Reply]     ), -   ok. +   Reply. | 


