summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/timed_cache_manager.erl')
-rw-r--r-- | src/timed_cache_manager.erl | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/src/timed_cache_manager.erl b/src/timed_cache_manager.erl deleted file mode 100644 index 45b013c..0000000 --- a/src/timed_cache_manager.erl +++ /dev/null @@ -1,76 +0,0 @@ --module(timed_cache_manager). --export( - [ - new/2, - start/1, - fetch/2 - ] -). -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% LOCAL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%% Manager %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -manager_core_loop (DB) -> - receive - terminate -> ets:delete(DB) - end. - -new_database (DB) -> - ets:new( - DB, - [ - set, - public, - {keypos, 1}, - {read_concurrency, true} - ] - ). - -%%%% Timer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -timer_cleanup (DB, ObjectID) -> - ets:delete(DB, ObjectID). - -timer_core_loop (DB, ObjectID, Timeout) -> - receive - ok -> timer_core_loop(DB, ObjectID, Timeout); - terminate -> ok - after Timeout -> - timer_cleanup(DB, ObjectID) - end. - -add_timer (DB, ObjectID, Timeout) -> - spawn(timed_cache_manager, timer_core_loop, [DB, ObjectID, Timeout]). - -add_to_cache (DB, ObjectID) -> - TimerPID = add_timer(DB, ObjectID, 60000), - Data = nothing, %% Do the actual NoSQL Fetch here. - ets:insert(DB, {ObjectID, TimerPID, Data}), - Data. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% EXPORTED %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -new (Manager, DB) -> - register( - Manager, - spawn( - timed_cache_manager, - start, - [DB] - ) - ). - -start (DB) -> - new_database(DB), - manager_core_loop(DB). - -fetch (DB, ObjectID) -> - case ets:lookup(DB, ObjectID) of - [] -> - add_to_cache(DB, ObjectID); - - [{_, TimerPID, Data}] -> - TimerPID ! ok, - Data - end. |