IHmp1ConnectionHandle
Namespace: Hex1b
Assembly: Hex1b.dll
User-facing handle to a connected HMP v1 client. Delivered to user code via when the client is built through the family.
public interface IHmp1ConnectionHandleProperties
DefaultRole
The role hint this client sent in its ClientHello, or null if no hint was supplied.
Returns: Nullable<Hmp1Role>
Hmp1Role? DefaultRole { get; }IsPrimary
Whether this client is the current primary peer.
Returns: Boolean
bool IsPrimary { get; }LocalDisplayName
The display name this client sent in its frame. If the caller did not supply one, this returns the auto-generated value.
Returns: String
string LocalDisplayName { get; }OnConnected
Invoked once after the HMP v1 handshake (ClientHello → Hello → StateSync) completes successfully. Pre-populated from at adapter construction; may be replaced or composed with += at runtime (multicast handlers are awaited sequentially with per-handler exception isolation).
Returns: Func<Hmp1ConnectedEventArgs, CancellationToken, Task>
Func<Hmp1ConnectedEventArgs, CancellationToken, Task>? OnConnected { get; set; }OnDisconnected
Invoked once when the underlying transport stream closes.
Returns: Func<CancellationToken, Task>
Func<CancellationToken, Task>? OnDisconnected { get; set; }OnPeerJoined
Invoked when another peer joins the same producer.
Returns: Func<PeerJoinEventArgs, CancellationToken, Task>
Func<PeerJoinEventArgs, CancellationToken, Task>? OnPeerJoined { get; set; }OnPeerLeft
Invoked when another peer leaves.
Returns: Func<PeerLeaveEventArgs, CancellationToken, Task>
Func<PeerLeaveEventArgs, CancellationToken, Task>? OnPeerLeft { get; set; }OnRemoteResized
Invoked when the producer's PTY dimensions change at runtime.
Returns: Func<RemoteResizedEventArgs, CancellationToken, Task>
Func<RemoteResizedEventArgs, CancellationToken, Task>? OnRemoteResized { get; set; }OnRoleChanged
Invoked when the primary peer changes.
Returns: Func<RoleChangedEventArgs, CancellationToken, Task>
Func<RoleChangedEventArgs, CancellationToken, Task>? OnRoleChanged { get; set; }PeerId
The peer ID the producer assigned to this client in its Hello.
Returns: String
string PeerId { get; }Peers
Snapshot of currently-connected peers (excluding self) as known to this client. Updated by PeerJoin / PeerLeave frames; set / for notifications.
Returns: IReadOnlyList<PeerInfo>
IReadOnlyList<PeerInfo> Peers { get; }RemoteHeight
The producer's PTY height as last observed by this client.
Returns: Int32
int RemoteHeight { get; }RemoteWidth
The producer's PTY width as last observed by this client. Updated by Resize and RoleChange frames; surfaced via .
Returns: Int32
int RemoteWidth { get; }Methods
RequestPrimaryAsync(int, int, CancellationToken)
Asks the producer to make this peer the primary at the supplied dimensions. Observe for the acknowledged transition.
Parameters:
cols(Int32):rows(Int32):ct(CancellationToken):
Returns: Task
Task RequestPrimaryAsync(int cols, int rows, CancellationToken ct = default)Remarks
This is the recommended surface for runtime queries (peer roster, remote dimensions, primary state) and runtime actions () on an HMP1 client. It hides the underlying workload-adapter type so consumers don't need to traffic in contracts.
implements this interface; advanced consumers that construct the adapter directly (because they need to drive before assembling the surrounding terminal) get the same surface for free by referring to the adapter through this interface.