MingaEditor.State.Remote (Minga v0.1.0)

Copy Markdown View Source

State for remote agent sessions and remote file buffers.

Summary

Types

Explicit metadata availability for a discovered remote session.

t()

Functions

Returns all tracked remote buffers with their server names and paths.

Finds an open buffer for a remote file.

Returns all tracked remote buffers for path, across servers.

Tracks the buffer pid used to display a remote file.

Marks a server's connection status.

Stores the latest discovered remote sessions for a server.

Retires every remote file registration that points at buffer.

Returns a server's known connection status.

Returns all discovered remote sessions grouped by server name.

Types

remote_connection_status()

@type remote_connection_status() :: :connected | :disconnected | :ended | :unavailable

remote_file_key()

@type remote_file_key() :: {String.t(), String.t()}

remote_session_entry()

@type remote_session_entry() :: {String.t(), pid(), session_details()}

session_details()

@type session_details() :: MingaAgent.RemoteAPI.SessionInfo.details()

Explicit metadata availability for a discovered remote session.

t()

@type t() :: %MingaEditor.State.Remote{
  buffers: %{required(remote_file_key()) => pid()},
  server_status: %{required(String.t()) => remote_connection_status()},
  sessions: %{required(String.t()) => [remote_session_entry()]}
}

Functions

all_buffers(remote)

@spec all_buffers(t()) :: [{String.t(), String.t(), pid()}]

Returns all tracked remote buffers with their server names and paths.

buffer(remote, server_name, path)

@spec buffer(t(), String.t(), String.t()) :: pid() | nil

Finds an open buffer for a remote file.

buffers_for_path(remote, path)

@spec buffers_for_path(t(), String.t()) :: [{String.t(), pid()}]

Returns all tracked remote buffers for path, across servers.

put_buffer(remote, server_name, path, buffer)

@spec put_buffer(t(), String.t(), String.t(), pid()) :: t()

Tracks the buffer pid used to display a remote file.

put_server_status(remote, server_name, status)

@spec put_server_status(t(), String.t(), remote_connection_status()) :: t()

Marks a server's connection status.

put_sessions(remote, server_name, sessions)

@spec put_sessions(t(), String.t(), [remote_session_entry()]) :: t()

Stores the latest discovered remote sessions for a server.

retire_buffer(remote, buffer)

@spec retire_buffer(t(), pid()) :: t()

Retires every remote file registration that points at buffer.

server_status(remote, server_name)

@spec server_status(t(), String.t()) :: remote_connection_status()

Returns a server's known connection status.

sessions(remote)

@spec sessions(t()) :: %{required(String.t()) => [remote_session_entry()]}

Returns all discovered remote sessions grouped by server name.