Packages
membrane_core
0.12.2
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc1
1.1.2
1.1.1
1.1.0
1.1.0-rc1
1.1.0-rc0
1.0.1
1.0.0
1.0.0-rc1
1.0.0-rc0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
retired
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Membrane Multimedia Framework (Core)
Current section
Files
Jump to
Current section
Files
lib/membrane/component_path.ex
defmodule Membrane.ComponentPath do
@moduledoc """
A list consisting of following pipeline/bin/element names down the assembled pipeline.
It traces element's path inside a pipeline.
Information is being stored in a process dictionary and can be set/appended to.
"""
@typedoc @moduledoc
@type path :: list(String.t())
@key :membrane_path
@doc """
Sets current path.
If path had already existed then replaces it.
"""
@spec set(path) :: :ok
def set(path) do
Process.put(@key, path)
:ok
end
@doc """
Returns formatted string of given path's names.
"""
@spec format(path()) :: String.t()
def format(path) do
Enum.join(path)
end
@doc """
Works the same way as `format/1` but uses currently stored path.
"""
@spec get_formatted() :: String.t()
def get_formatted() do
get() |> format()
end
@doc """
Returns currently stored path.
If path has not been set, empty list is returned.
"""
@spec get() :: list(String.t())
def get(), do: Process.get(@key, [])
end