Current section
Files
Jump to
Current section
Files
lib/memcache/transport.ex
defmodule Memcache.Transport do
defstruct [:transport, :sock]
def connect(transport, host, port, sock_opts, timeout, opts)
when transport in [:gen_tcp, :ssl] do
ssl_opts = Keyword.get(opts, :ssl_options, [])
sock_opts = sock_opts ++ ssl_opts
case transport.connect(host, port, sock_opts, timeout) do
{:ok, sock} ->
{:ok, %__MODULE__{transport: transport, sock: sock}}
error ->
error
end
end
def setopts(%{transport: :gen_tcp, sock: sock}, opts) do
:inet.setopts(sock, opts)
end
def setopts(%{transport: :ssl, sock: sock}, opts) do
:ssl.setopts(sock, opts)
end
def send(%{transport: transport, sock: sock}, data) do
transport.send(sock, data)
end
def recv(%{transport: transport, sock: sock}, length) do
transport.recv(sock, length)
end
def close(%{transport: transport, sock: sock}) do
transport.close(sock)
end
end