| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-12-15 11:54:04 +0100 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-12-15 11:54:04 +0100 | 
| commit | 0d7af0558cefec3041cb31e58afb09871c28d747 (patch) | |
| tree | d4b98b85532dfa9f56edbb3ea2286ce64a95d4b0 /src/ataxic.erl | |
| parent | 5247072964e0d827868a3cab5baad23938f15f41 (diff) | |
...
Diffstat (limited to 'src/ataxic.erl')
| -rw-r--r-- | src/ataxic.erl | 41 | 
1 files changed, 26 insertions, 15 deletions
| diff --git a/src/ataxic.erl b/src/ataxic.erl index 5c5698b..35291b0 100644 --- a/src/ataxic.erl +++ b/src/ataxic.erl @@ -45,6 +45,7 @@  %%%% Select  -record(read_perm, {op :: basic()}).  -record(write_perm, {op :: basic()}). +-record(lock, {op :: basic()}).  -record(value, {op :: basic()}).  -record(mseq, {ops :: list(meta())}). @@ -78,9 +79,10 @@  -export  (     [ -      read_permission/1, -      write_permission/1, -      value/1, +      update_read_permission/1, +      update_write_permission/1, +      update_lock/1, +      update_value/1,        sequence_meta/1     ]  ). @@ -182,17 +184,32 @@ neg (V) -> #neg{ param = V }.  -spec sequence_meta (list(meta())) -> meta().  sequence_meta (List) -> #mseq{ ops = List }. --spec read_permission (basic()) -> meta(). -read_permission (OP) -> #read_perm{ op = OP }. +-spec update_read_permission (basic()) -> meta(). +update_read_permission (OP) -> #read_perm{ op = OP }. --spec write_permission (basic()) -> meta(). -write_permission (OP) -> #write_perm{ op = OP }. +-spec update_lock (basic()) -> meta(). +update_lock (OP) -> #lock{ op = OP }. --spec value (basic()) -> meta(). -value (OP) -> #value{ op = OP }. +-spec update_write_permission (basic()) -> meta(). +update_write_permission (OP) -> #write_perm{ op = OP }. + +-spec update_value (basic()) -> meta(). +update_value (OP) -> #value{ op = OP }.  %%%%% APPLY TO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -spec apply_to (meta(), ataxia_entry:type()) -> ataxia_entry:type(). +apply_to (#value{ op = OP }, Entry) -> +   ataxia_entry:set_value +   ( +      basic_apply_to(OP, ataxia_entry:get_value(Entry)), +      Entry +   ); +apply_to (#lock{ op = OP }, Entry) -> +   ataxia_entry:set_lock +   ( +      basic_apply_to(OP, ataxia_entry:get_lock(Entry)), +      Entry +   );  apply_to (#read_perm{ op = OP }, Entry) ->     ataxia_entry:set_read_permission     ( @@ -205,12 +222,6 @@ apply_to (#write_perm{ op = OP }, Entry) ->        basic_apply_to(OP, ataxia_entry:get_write_permission(Entry)),        Entry     ); -apply_to (#value{ op = OP }, Entry) -> -   ataxia_entry:set_value -   ( -      basic_apply_to(OP, ataxia_entry:get_value(Entry)), -      Entry -   );  apply_to (#mseq { ops = List }, Entry) ->     lists:foldl(fun apply_to/2, Entry, List). | 


