summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-06-06 17:00:21 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-06-06 17:00:21 +0200
commitdaa6c9b3fa9a62d3f6a1a696f67976e904d641b9 (patch)
treeb4a599ef48871050dbfe78dae0397ad67d491ed5 /src/shared
parent82081d45fd64294f4bc417085e06284f3487b32f (diff)
...
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/io/sh_database.erl2
-rw-r--r--src/shared/io/sh_timed_cache.erl2
-rw-r--r--src/shared/sh_roll.erl32
-rw-r--r--src/shared/struct/sh_db_item.erl6
-rw-r--r--src/shared/struct/sh_db_query.erl12
5 files changed, 43 insertions, 11 deletions
diff --git a/src/shared/io/sh_database.erl b/src/shared/io/sh_database.erl
index a65b784..5fa791f 100644
--- a/src/shared/io/sh_database.erl
+++ b/src/shared/io/sh_database.erl
@@ -130,7 +130,7 @@ fetch (DB, ObjectID) ->
io:format("~ndb_shim:fetch(~p) -> ~p.~n", [{DB, ObjectID}, Reply]),
Reply.
--spec commit (db_query:type()) -> 'ok'.
+-spec commit (sh_db_query:type()) -> 'ok'.
commit (Query) ->
{atomic, ok} = rpc:call(get_db_node(), storage_access, query, [Query]),
io:format("~ndb_shim:commit(~p) -> ok.~n", [Query]),
diff --git a/src/shared/io/sh_timed_cache.erl b/src/shared/io/sh_timed_cache.erl
index de2f409..6f3d973 100644
--- a/src/shared/io/sh_timed_cache.erl
+++ b/src/shared/io/sh_timed_cache.erl
@@ -37,7 +37,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec add_to_cache (atom(), any(), any()) -> any().
add_to_cache (DB, Owner, ObjectID) ->
- {ok, TimerPID} = sh_gen_server:start(?MODULE, {DB, {Owner, ObjectID}}, []),
+ {ok, TimerPID} = gen_server:start(?MODULE, {DB, {Owner, ObjectID}}, []),
{ok, Data} = sh_database:fetch(DB, ObjectID),
ets:insert(DB, {{Owner, ObjectID}, TimerPID, Data}),
Data.
diff --git a/src/shared/sh_roll.erl b/src/shared/sh_roll.erl
new file mode 100644
index 0000000..f2212b1
--- /dev/null
+++ b/src/shared/sh_roll.erl
@@ -0,0 +1,32 @@
+-module(sh_roll).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ percentage/0,
+ between/2
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec between (non_neg_integer(), non_neg_integer()) -> non_neg_integer().
+between (Min, Max) ->
+ Diff = (Max - Min),
+ (Min + (rand:uniform(Diff + 1) - 1)).
+
+-spec percentage () -> 0..100.
+percentage () ->
+ between(0, 100).
diff --git a/src/shared/struct/sh_db_item.erl b/src/shared/struct/sh_db_item.erl
index 98a1cb4..3692a88 100644
--- a/src/shared/struct/sh_db_item.erl
+++ b/src/shared/struct/sh_db_item.erl
@@ -47,7 +47,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec new (any(), db_user:permission(), any()) -> type().
+-spec new (any(), sh_db_user:permission(), any()) -> type().
new (ID, Permission, Value) ->
#db_item
{
@@ -59,13 +59,13 @@ new (ID, Permission, Value) ->
-spec get_id (type()) -> any().
get_id (#db_item { id = Result }) -> Result.
--spec get_permission (type()) -> db_user:permission().
+-spec get_permission (type()) -> sh_db_user:permission().
get_permission (#db_item { perm = Result }) -> Result.
-spec get_value (type()) -> any().
get_value (#db_item { val = Result }) -> Result.
--spec set_permission (db_user:permission(), type()) -> type().
+-spec set_permission (sh_db_user:permission(), type()) -> type().
set_permission (Perm, Item) -> Item#db_item{ perm = Perm }.
-spec set_value (any(), type()) -> type().
diff --git a/src/shared/struct/sh_db_query.erl b/src/shared/struct/sh_db_query.erl
index 4eb50ba..47d85d6 100644
--- a/src/shared/struct/sh_db_query.erl
+++ b/src/shared/struct/sh_db_query.erl
@@ -54,7 +54,7 @@
{
db :: atom(),
id :: any(),
- user :: db_user:user(),
+ user :: sh_db_user:user(),
ops :: list(db_query_master_op())
}
).
@@ -76,7 +76,7 @@
[
new/4,
set_field/2,
- add_to_field/2,
+ add_to_field/3,
update_indexed/3
]
).
@@ -148,7 +148,7 @@ apply_op_to (Op, Elem) when is_record(Op, update_indexed) ->
apply_master_op_to (MOp, Elem) when is_record(MOp, set_perm) ->
NewPerm = MOp#set_perm.perm,
- sh_db_item:set_perm(NewPerm, Elem);
+ sh_db_item:set_permission(NewPerm, Elem);
apply_master_op_to (MOp, Elem) when is_record(MOp, set_val) ->
NewVal = MOp#set_val.val,
@@ -176,9 +176,9 @@ new (DBName, ObjectID, User, Ops) ->
set_field (Field, Value) ->
#set_field { field = Field, value = Value }.
--spec add_to_field (non_neg_integer(), list(any())) -> op().
-add_to_field (Field, Values) ->
- #add_to_field { field = Field, values = Values }.
+-spec add_to_field (non_neg_integer(), list(any()), boolean()) -> op().
+add_to_field (Field, Values, IsPrefix) ->
+ #add_to_field { field = Field, values = Values, head = IsPrefix}.
-spec update_indexed
(