/Original-Code/chapter_13/simple_cache/src/sc_hbase.erl

https://github.com/sschaefer/Notebook-for-Erlang-And-OTP-in-Action · Erlang · 36 lines · 32 code · 4 blank · 0 comment · 0 complexity · 4fbaa6dc70d43a699c22f30904f1f303 MD5 · raw file

  1. -module(sc_hbase).
  2. -export([put/3, get/2, delete/2]).
  3. put(Node, Key, Value) ->
  4. Ref = make_ref(),
  5. {hbase_server, Node} ! {put, self(), Ref, term_to_binary(Key),
  6. term_to_binary(Value)},
  7. receive
  8. {reply, Ref, ok} ->
  9. ok
  10. after 3000 ->
  11. {error, timeout}
  12. end.
  13. get(Node, Key) ->
  14. Ref = make_ref(),
  15. {hbase_server, Node} ! {get, self(), Ref, term_to_binary(Key)},
  16. receive
  17. {reply, Ref, not_found} ->
  18. {error, not_found};
  19. {reply, Ref, Binary} ->
  20. {ok, binary_to_term(Binary)}
  21. after 3000 ->
  22. {error, timeout}
  23. end.
  24. delete(Node, Key) ->
  25. Ref = make_ref(),
  26. {hbase_server, Node} ! {delete, self(), Ref, term_to_binary(Key)},
  27. receive
  28. {reply, Ref, ok} ->
  29. ok
  30. after 3000 ->
  31. {error, timeout}
  32. end.