30 lines
1.3 KiB
Java
30 lines
1.3 KiB
Java
package dev.ltms.bridged.peer;
|
|
|
|
/**
|
|
* An opaque handle returned by {@link PeerLauncher#spawn(SpawnRequest)}. The core routes on
|
|
* {@link #id()} (the registry/routing key) and uses {@link #terminalId()} for session tracking;
|
|
* launcher-private coordinates beyond these are reachable through the concrete implementation.
|
|
*
|
|
* <p>A {@link PeerHandle} is returned <em>after</em> the peer process is live — the launcher
|
|
* has already completed subscription-guarded env/vfs setup, process start, and placement. The
|
|
* handle is a ticket the core exchanges for the running peer, not a lazy/delayed reference.
|
|
*/
|
|
public interface PeerHandle {
|
|
|
|
/**
|
|
* The registry/routing key — an opaque, launcher-assigned identifier. For the herdr-backed
|
|
* launcher this is the herdr pane id; for other launchers it is whatever their transport
|
|
* uses. Guaranteed to be non-null and unique among live peers within a single daemon process.
|
|
*/
|
|
String id();
|
|
|
|
/**
|
|
* The transport-level session identifier used for message routing and presence tracking.
|
|
* For the herdr launcher this is the herdr terminal UUID. A non-herdr launcher may return
|
|
* its own analogous identifier, or {@code null} if the concept does not apply.
|
|
*/
|
|
default String terminalId() {
|
|
return null;
|
|
}
|
|
}
|