Packages
membrane_core
0.11.5
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 """
Traces element's path inside a pipeline.
Path is a list consisted of following pipeline/bin/element names down the assembled pipeline.
Information is being stored in a process dictionary and can be set/appended to.
"""
@type path_t :: list(String.t())
@key :membrane_path
@doc """
Sets current path.
If path had already existed then replaces it.
"""
@spec set(path_t) :: :ok
def set(path) do
Process.put(@key, path)
:ok
end
@doc """
Returns formatted string of given path's names.
"""
@spec format(path_t()) :: 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