lib/buffer/stream.ex
defmodule SuperCache.Stream do
require Logger
alias SuperCache.Queue
def create(q) do
Stream.resource(
fn ->
q
end,
fn queue ->
Logger.debug("get data from queue")
{Queue.get(queue), queue}
end,
fn _queue ->
:ok
end
)
end
def make_stream_pipe(enumable) do
enumable
|> Stream.each(&push/1)
|> Stream.run
end
def push(data) do
SuperCache.put(data)
Logger.debug("pushed #{inspect data} to cache")
end
end