callback :: (binary, pos_integer, state :: any -> read_ret)
read_ret :: {:ok, state :: any} | {:error, reason :: any}
read(Path.t, callback, state :: any) :: :ok | {:error, reason :: any}
stats(Path.t) :: {:ok, {msg_count :: non_neg_integer, err_count :: non_neg_integer}}
valid?(Path.t) :: boolean