ExecutionPlane.Family.ProcessGateway behaviour (execution_plane v0.2.0)

Copy Markdown View Source

Process lifecycle without flattening interactive input and termination.

Summary

Callbacks

attach(t, pid, keyword)

@callback attach(ExecutionPlane.ExecutionRef.t(), pid(), keyword()) ::
  :ok | {:error, term()}

cancel(t, keyword)

@callback cancel(
  ExecutionPlane.ExecutionRef.t(),
  keyword()
) :: :ok | {:error, term()}

end_input(t, keyword)

@callback end_input(
  ExecutionPlane.ExecutionRef.t(),
  keyword()
) :: :ok | {:error, term()}

send_input(t, iodata, keyword)

@callback send_input(ExecutionPlane.ExecutionRef.t(), iodata(), keyword()) ::
  :ok | {:error, term()}

start(t, keyword)

@callback start(
  ExecutionPlane.Family.ProcessRequest.t(),
  keyword()
) :: {:ok, ExecutionPlane.ActiveExecution.t()} | {:error, term()}

status(t, keyword)

@callback status(
  ExecutionPlane.ExecutionRef.t(),
  keyword()
) :: {:ok, ExecutionPlane.Runtime.Status.t()} | {:error, term()}

terminate(t, keyword)

@callback terminate(
  ExecutionPlane.ExecutionRef.t(),
  keyword()
) :: :ok | {:error, term()}