Skip to main content

AdapterSocket

Struct AdapterSocket 

Source
pub struct AdapterSocket {
    pub workspace: PathBuf,
    pub role: String,
    pub cluster: String,
    pub server: String,
    pub dispatch: DispatchState,
}

Fields§

§workspace: PathBuf§role: String§cluster: String§server: String§dispatch: DispatchState

Implementations§

Source§

impl AdapterSocket

Source

pub fn path(&self) -> PathBuf

The path this role’s clients connect to, per RoleWorkspace::socket_path.

One accessor answers for the whole tree, so the daemon that bound <runtime>/<digest>.sock and a caller that derived it from the workspace root reach the same socket.

Source

pub fn registration(&self) -> RegistrationFile

The registration this client publishes beside its socket.

The kind is the client’s own: a role workspace’s daemon serves the client surface, and no reader infers that from what happens to sit beside the tree. role names the one role this process serves, runtime the session backend that hosts it, and placement where this machine displays that runtime — the machine-owned half of the pair an external runtime’s plugin matches on to find the clients it serves.

Source

pub async fn bind(&self) -> Result<(LocalListener, SocketEndpoint)>

Bind the workspace socket and report the endpoint that was served.

bind_socket_v2 owns the whole sequence — resolve the runtime directory, drop a stale name, and bind <runtime>/<digest>.sock — and its failure message names the path it tried. The registration is published after the bind succeeds, so a surface that never opened never names itself.

The socket is served off the canonical <run_dir>/s spelling, so the log line names that spelling too: it is what an operator reading the tree will look for and not find.

Source

pub async fn accept_loop(&self, listener: LocalListener) -> Result<()>

Answer every connection on listener for the life of the process.

The listener stays open across a failed accept: one bad handshake on one socket is that client’s problem, and every plugin already mounted would lose its transport if the surface came down for it. The pause keeps a persistent failure — a descriptor ceiling, a name pulled out from under the listener — from spinning the loop at full speed.

The registration published by bind belongs to this scope: it names this process as the client for the workspace, and the guard here takes the file with it when the surface stops serving, however it stops.

Source

pub async fn serve(self) -> Result<()>

Bind and serve in one call, for a caller that owns no endpoint interest.

Trait Implementations§

Source§

impl Clone for AdapterSocket

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryClone for T
where T: Clone,

Source§

fn try_clone(&self) -> Result<T, Error>

Clones self, possibly returning an error.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more