structured_io v0.5.0 StructuredIO.Deprecated View Source

Provides deprecated functions to StructuredIO.

Encoding

Mixing the use of binary mode and Unicode mode results in a StructuredIO.error/0.

Link to this section Summary

Functions

Reads data from the specified structured_io beginning with the specified from and ending with the specified through, inclusive, using the specified timeout (defaults to 5,000 milliseconds)

Reads data from the specified structured_io beginning with the specified after_data and ending with the specified before_data, exclusive, using the specified timeout (defaults to 5,000 milliseconds)

Reads data from the specified structured_io if and until the specified through is encountered, including through, using the specified timeout (defaults to 5,000 milliseconds)

Reads data from the specified structured_io if and until the specified to is encountered, excluding to, using the specified timeout (defaults to 5,000 milliseconds)

Asynchronously writes the specified iodata as a binary to the specified structured_io

Reads data from the specified structured_io beginning with the specified from and ending with the specified through, inclusive, using the specified timeout (defaults to 5,000 milliseconds)

Reads data from the specified structured_io beginning with the specified after_data and ending with the specified before_data, exclusive, using the specified timeout (defaults to 5,000 milliseconds)

Reads data from the specified structured_io if and until the specified through is encountered, including through, using the specified timeout (defaults to 5,000 milliseconds)

Reads data from the specified structured_io if and until the specified to is encountered, excluding to, using the specified timeout (defaults to 5,000 milliseconds)

Starts a StructuredIO process without links (outside a supervision tree)

Starts a StructuredIO process linked to the current process

Link to this section Functions

Link to this function binread_across(structured_io, from, through, timeout \\ 5000) View Source
binread_across(GenServer.server(), binary(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io beginning with the specified from and ending with the specified through, inclusive, using the specified timeout (defaults to 5,000 milliseconds).

If the data read does not begin with from, the result is an empty binary (""). Likewise, if through is not encountered, the result is an empty binary.

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.binwrite structured_io,
...>                       <<0, 0, 0, 1, 2, 3, 255, 255>>
:ok
iex> StructuredIO.binread_across structured_io,
...>                             <<0, 0, 0>>,
...>                             <<255, 255, 255>>
""
iex> StructuredIO.binwrite structured_io,
...>                       <<255, 0, 0, 0, 4, 5, 6, 255, 255, 255>>
:ok
iex> StructuredIO.binread_across structured_io,
...>                             <<0, 0, 0>>,
...>                             <<255, 255, 255>>
<<0, 0, 0, 1, 2, 3, 255, 255, 255>>
iex> StructuredIO.binread_across structured_io,
...>                             <<0, 0, 0>>,
...>                             <<255, 255, 255>>
<<0, 0, 0, 4, 5, 6, 255, 255, 255>>
iex> StructuredIO.binread_across structured_io,
...>                             <<0, 0, 0>>,
...>                             <<255, 255, 255>>
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.binwrite structured_io,
...>                       "<elem>"
:ok
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.binwrite structured_io,
...>                       fragment1
:ok
iex> StructuredIO.binread_across structured_io,
...>                             "<elem>",
...>                             "</elem>"
""
iex> StructuredIO.binwrite structured_io,
...>                       fragment2
:ok
iex> StructuredIO.binwrite structured_io,
...>                       "</elem>"
:ok
iex> StructuredIO.binread_across structured_io,
...>                             "<elem>",
...>                             "</elem>"
"<elem>😕</elem>"
iex> StructuredIO.binread_across structured_io,
...>                             "<elem>",
...>                             "</elem>"
""
Link to this function binread_between(structured_io, after_data, before_data, timeout \\ 5000) View Source
binread_between(GenServer.server(), binary(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io beginning with the specified after_data and ending with the specified before_data, exclusive, using the specified timeout (defaults to 5,000 milliseconds).

If the data read does not begin with after_data, the result is an empty binary (""). Likewise, if before_data is not encountered, the result is an empty binary.

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.binwrite structured_io,
...>                       <<0, 0, 0, 1, 2, 3, 255, 255>>
:ok
iex> StructuredIO.binread_between structured_io,
...>                              <<0, 0, 0>>,
...>                              <<255, 255, 255>>
""
iex> StructuredIO.binwrite structured_io,
...>                       <<255, 0, 0, 0, 4, 5, 6, 255, 255, 255>>
:ok
iex> StructuredIO.binread_between structured_io,
...>                              <<0, 0, 0>>,
...>                              <<255, 255, 255>>
<<1, 2, 3>>
iex> StructuredIO.binread_between structured_io,
...>                              <<0, 0, 0>>,
...>                              <<255, 255, 255>>
<<4, 5, 6>>
iex> StructuredIO.binread_between structured_io,
...>                              <<0, 0, 0>>,
...>                              <<255, 255, 255>>
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.binwrite structured_io,
...>                       "<elem>"
:ok
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.binwrite structured_io,
...>                       fragment1
:ok
iex> StructuredIO.binread_between structured_io,
...>                              "<elem>",
...>                              "</elem>"
""
iex> StructuredIO.binwrite structured_io,
...>                       fragment2
:ok
iex> StructuredIO.binwrite structured_io,
...>                       "</elem>"
:ok
iex> StructuredIO.binread_between structured_io,
...>                              "<elem>",
...>                              "</elem>"
"😕"
iex> StructuredIO.binread_between structured_io,
...>                              "<elem>",
...>                              "</elem>"
""
Link to this function binread_through(structured_io, through, timeout \\ 5000) View Source
binread_through(GenServer.server(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io if and until the specified through is encountered, including through, using the specified timeout (defaults to 5,000 milliseconds).

If through is not encountered, the result is an empty binary ("").

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.binwrite structured_io,
...>                       <<1, 2, 3, 255, 255>>
:ok
iex> StructuredIO.binread_through structured_io,
...>                              <<255, 255, 255>>
""
iex> StructuredIO.binwrite structured_io,
...>                       <<255, 4, 5, 6, 255, 255, 255>>
:ok
iex> StructuredIO.binread_through structured_io,
...>                              <<255, 255, 255>>
<<1, 2, 3, 255, 255, 255>>
iex> StructuredIO.binread_through structured_io,
...>                              <<255, 255, 255>>
<<4, 5, 6, 255, 255, 255>>
iex> StructuredIO.binread_through structured_io,
...>                              <<255, 255, 255>>
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.binwrite structured_io,
...>                       fragment1
:ok
iex> StructuredIO.binread_through structured_io,
...>                              "<br/>"
""
iex> StructuredIO.binwrite structured_io,
...>                       fragment2
:ok
iex> StructuredIO.binwrite structured_io,
...>                       "<br/>"
:ok
iex> StructuredIO.binread_through structured_io,
...>                              "<br/>"
"😕<br/>"
iex> StructuredIO.binread_through structured_io,
...>                              "<br/>"
""
Link to this function binread_to(structured_io, to, timeout \\ 5000) View Source
binread_to(GenServer.server(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io if and until the specified to is encountered, excluding to, using the specified timeout (defaults to 5,000 milliseconds).

If to is not encountered, the result is an empty binary ("").

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.binwrite structured_io,
...>                       <<1, 2, 3, 255, 255>>
:ok
iex> StructuredIO.binread_to structured_io,
...>                         <<255, 255, 255>>
""
iex> StructuredIO.binwrite structured_io,
...>                       <<255, 4, 5, 6, 255, 255, 255>>
:ok
iex> StructuredIO.binread_to structured_io,
...>                         <<255, 255, 255>>
<<1, 2, 3>>
iex> StructuredIO.binread_through structured_io,
...>                              <<255, 255, 255>>
<<255, 255, 255>>
iex> StructuredIO.binread_to structured_io,
...>                         <<255, 255, 255>>
<<4, 5, 6>>
iex> StructuredIO.binread_to structured_io,
...>                         <<255, 255, 255>>
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.binwrite structured_io,
...>                       fragment1
:ok
iex> StructuredIO.binread_to structured_io,
...>                         "<br/>"
""
iex> StructuredIO.binwrite structured_io,
...>                       fragment2
:ok
iex> StructuredIO.binwrite structured_io,
...>                       "<br/>"
:ok
iex> StructuredIO.binread_to structured_io,
...>                         "<br/>"
"😕"
iex> StructuredIO.binread_to structured_io,
...>                         "<br/>"
""
Link to this function binwrite(structured_io, iodata) View Source
binwrite(GenServer.server(), iodata()) :: :ok | StructuredIO.error()

Asynchronously writes the specified iodata as a binary to the specified structured_io.

See StructuredIO.Deprecated.binread_across/3, StructuredIO.Deprecated.binread_between/3, StructuredIO.Deprecated.binread_through/2, and StructuredIO.Deprecated.binread_to/2 for examples.

Link to this function read_across(structured_io, from, through, timeout \\ 5000) View Source
read_across(GenServer.server(), binary(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io beginning with the specified from and ending with the specified through, inclusive, using the specified timeout (defaults to 5,000 milliseconds).

If the data read does not begin with from, the result is an empty binary (""). Likewise, if through is not encountered, the result is an empty binary.

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.write structured_io,
...>                    "<elem>foo</elem"
:ok
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
""
iex> StructuredIO.write structured_io,
...>                    "><elem>bar</elem>"
:ok
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
"<elem>foo</elem>"
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
"<elem>bar</elem>"
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.write structured_io,
...>                    "<elem>"
:ok
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.write structured_io,
...>                    fragment1
:ok
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
{:error,
 "UnicodeConversionError: incomplete encoding starting at #{inspect fragment1}"}
iex> StructuredIO.write structured_io,
...>                    fragment2
:ok
iex> StructuredIO.write structured_io,
...>                    "</elem>"
:ok
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
"<elem>😕</elem>"
iex> StructuredIO.read_across structured_io,
...>                          "<elem>",
...>                          "</elem>"
""
Link to this function read_between(structured_io, after_data, before_data, timeout \\ 5000) View Source
read_between(GenServer.server(), binary(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io beginning with the specified after_data and ending with the specified before_data, exclusive, using the specified timeout (defaults to 5,000 milliseconds).

If the data read does not begin with after_data, the result is an empty binary (""). Likewise, if before_data is not encountered, the result is an empty binary.

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.write structured_io,
...>                    "<elem>foo</elem"
:ok
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
""
iex> StructuredIO.write structured_io,
...>                    "><elem>bar</elem>"
:ok
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
"foo"
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
"bar"
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.write structured_io,
...>                    "<elem>"
:ok
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.write structured_io,
...>                    fragment1
:ok
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
{:error,
 "UnicodeConversionError: incomplete encoding starting at #{inspect fragment1}"}
iex> StructuredIO.write structured_io,
...>                    fragment2
:ok
iex> StructuredIO.write structured_io,
...>                    "</elem>"
:ok
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
"😕"
iex> StructuredIO.read_between structured_io,
...>                           "<elem>",
...>                           "</elem>"
""
Link to this function read_through(structured_io, through, timeout \\ 5000) View Source
read_through(GenServer.server(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io if and until the specified through is encountered, including through, using the specified timeout (defaults to 5,000 milliseconds).

If through is not encountered, the result is an empty binary ("").

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.write structured_io,
...>                    "foo<br/"
:ok
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
""
iex> StructuredIO.write structured_io,
...>                    ">bar<br/>"
:ok
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
"foo<br/>"
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
"bar<br/>"
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.write structured_io,
...>                    fragment1
:ok
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
{:error,
 "UnicodeConversionError: incomplete encoding starting at #{inspect fragment1}"}
iex> StructuredIO.write structured_io,
...>                    fragment2
:ok
iex> StructuredIO.write structured_io,
...>                    "<br/>"
:ok
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
"😕<br/>"
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
""
Link to this function read_to(structured_io, to, timeout \\ 5000) View Source
read_to(GenServer.server(), binary(), timeout()) ::
  binary() |
  StructuredIO.error()

Reads data from the specified structured_io if and until the specified to is encountered, excluding to, using the specified timeout (defaults to 5,000 milliseconds).

If to is not encountered, the result is an empty binary ("").

Examples

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> StructuredIO.write structured_io,
...>                    "foo<br/"
:ok
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
""
iex> StructuredIO.write structured_io,
...>                    ">bar<br/>"
:ok
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
"foo"
iex> StructuredIO.read_through structured_io,
...>                           "<br/>"
"<br/>"
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
"bar"
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
""

iex> {:ok,
...>  structured_io} = StructuredIO.start_link
iex> <<fragment1::binary-size(3), fragment2::binary>> = "😕"
iex> StructuredIO.write structured_io,
...>                    fragment1
:ok
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
{:error,
 "UnicodeConversionError: incomplete encoding starting at #{inspect fragment1}"}
iex> StructuredIO.write structured_io,
...>                    fragment2
:ok
iex> StructuredIO.write structured_io,
...>                    "<br/>"
:ok
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
"😕"
iex> StructuredIO.read_to structured_io,
...>                      "<br/>"
""

Starts a StructuredIO process without links (outside a supervision tree).

See StructuredIO.Deprecated.start_link/0.