Packages

Neo4j driver for Elixir, using the fast Bolt protocol

Current section

Files

Jump to
boltx lib bolt_sips socket.ex
Raw

lib/bolt_sips/socket.ex

defmodule Bolt.Sips.Socket do
@moduledoc """
A default socket interface used to communicate to a Neo4j instance.
Any other socket implementing the same interface can be used
in place of this one. Actually, this module doesn't
implement the interface on its own, it delegates calls to
the gen_tcp (http://erlang.org/doc/man/gen_tcp.html)
and inet (http://erlang.org/doc/man/inet.html) modules. Any of these
modules doesn't fully implement the required interface,
hence, both of them must be used.
"""
@doc "Delegates to :gen_tcp.connect/4"
defdelegate connect(host, port, opts, timeout), to: :gen_tcp
@doc "Delegates to :inet.setopts/2"
defdelegate setopts(sock, opts), to: :inet
@doc "Delegates to :gen_tcp.send/2"
defdelegate send(sock, package), to: :gen_tcp
@doc "Delegates to :gen_tcp.recv/3"
defdelegate recv(sock, length, timeout), to: :gen_tcp
@doc "Delegates to :gen_tcp.recv/2"
defdelegate recv(sock, length), to: :gen_tcp
@doc "Delegates to :inet.close/1"
defdelegate close(sock), to: :inet
end