Raxol.Terminal.Sync.Protocol (Raxol v0.5.0)

View Source

Defines the synchronization protocol for terminal components. Handles message formats, versioning, and conflict resolution strategies.

Summary

Types

sync_message()

@type sync_message() :: %{
  type: :sync | :ack | :conflict | :resolve,
  component_id: String.t(),
  component_type: :split | :window | :tab,
  state: term(),
  metadata: %{
    version: non_neg_integer(),
    timestamp: non_neg_integer(),
    source: String.t(),
    consistency: :strong | :eventual | :causal
  }
}

sync_result()

@type sync_result() :: :ok | {:error, :conflict | :version_mismatch | :invalid_state}

Functions

create_ack_message(component_id, component_type, version)

create_conflict_message(component_id, component_type, current_state, incoming_state)

create_resolve_message(component_id, component_type, resolved_state, version)

create_sync_message(component_id, component_type, state, opts \\ [])

handle_ack_message(message, current_state)

handle_conflict_message(message, current_state)

handle_resolve_message(message, current_state)

handle_sync_message(message, current_state)