Skip to main content

Lifecycle

Struct Lifecycle 

Source
pub struct Lifecycle { /* private fields */ }
Expand description

The registry, its templates and the processes it started.

Implementations§

Source§

impl Lifecycle

Source

pub fn check_plan_holder( &self, record: &ServiceRecord, holder: &str, ) -> Result<(), SiteError>

Only the signed builder with an outright site plan right can reach writes.

§Errors

The named holder is not the currently bound builder.

Source§

impl Lifecycle

Source

pub fn deploy( self: &Arc<Self>, id: &str, holder: &str, ) -> Result<ServiceRecord, LifecycleError>

Starts an asleep service’s template for holder; it is recorded live when its worker registers.

§Errors

By name: the service, its state, or the start.

Source

pub fn wake( self: &Arc<Self>, id: &str, holder: &str, ) -> Result<ServiceRecord, LifecycleError>

Starts a held service’s template again for holder.

§Errors

As Self::deploy.

Source

pub fn hold( &self, id: &str, holder: &str, now_ms: u64, ) -> Result<ServiceRecord, LifecycleError>

Stops a running or live service for holder and records it held.

§Errors

By name: the service, its state, the stop or the store.

Source

pub fn retire( &self, id: &str, holder: &str, now_ms: u64, ) -> Result<ServiceRecord, LifecycleError>

Stops a service if it runs and records it retired, for good.

§Errors

As Self::hold.

Source

pub fn admit_process(&self, token: &[u8]) -> Option<ProcessGrant>

What token admits, when it is a running service process’s own.

Source

pub fn mark_live(&self, id: &str, now_ms: u64) -> Result<(), LifecycleError>

Records id live when its worker registered, for the holder that started it; nothing when it already is.

§Errors

The service is unknown or the store failed.

Source

pub fn restart_live( self: &Arc<Self>, now_ms: u64, ) -> Vec<(String, LifecycleError)>

Starts every service last recorded live, as the holder that last made it so, after a restart. A start that fails is recorded on the service and the rest still start.

Source

pub fn shutdown_begun(&self)

The server’s shutdown has begun: from here no service starts, and a process that exits (a worker leaves when its connection closes) keeps its service’s recorded state, so a live service is live at the next start. Called when the stop is asked, before any connection drains.

Source

pub fn shutdown(&self)

Stops every running process at server shutdown without changing a state, so a live service is started again by the next start.

Source§

impl Lifecycle

Source

pub fn keep_held_site( &self, id: &str, request: &DraftRequest, act: &SiteAct, pass: &VerifiedPass, mode: GrantMode, at_ms: u64, ) -> Result<(), SiteError>

Records the exact prepared request after Lys durably holds it. Identity is checked again against the original verified pass, never request fields.

§Errors

Any immutable mismatch, invalid boundary or durable capacity failure.

Source§

impl Lifecycle

Source

pub fn apply_outright( &self, act: &SiteAct, grant: &str, operation: &str, words: &str, at_ms: u64, ) -> Result<Value, SiteError>

Applies act under the outright grant, keyed by the caller’s operation.

§Errors

The act’s own refusal (an existing site, a service not building), or a store failure.

Source§

impl Lifecycle

Source

pub fn validate_site_storage(&self) -> Result<(), SiteError>

Validates every restored construction count before admission.

§Errors

Oversized or inconsistent restored history.

Source§

impl Lifecycle

Source

pub fn site_stations(&self, device: &str) -> Result<Vec<Value>, SiteError>

Returns every construction service with its contracts, builder and plan.

§Errors

The registry is poisoned or a record cannot be encoded.

Source§

impl Lifecycle

Source

pub fn open_bounded( templates: &[ServiceTemplateConfig], dir: PathBuf, network: String, placer: Option<Arc<dyn Placer>>, limits: &SiteLimits, ) -> Result<Arc<Self>, LifecycleError>

Opens construction with explicit migration bounds before parsing any old file. Ordinary configuration-only registries retain their existing path.

§Errors

Invalid old snapshot, nonregular file, count/byte bound, or migration write.

Source

pub fn configure_sites( &self, limits: SiteLimits, store: Arc<dyn DurableStore>, templates: Option<TemplatePolicy>, effects: Arc<dyn SiteEffects>, retained: Arc<Retained>, ) -> Result<(), SiteError>

Installs operator bounds and the grant effect once, before admission. The retained projection shares the existing scheduler and inbox bounds.

§Errors

Repeated installation or invalid restored construction records.

Source§

impl Lifecycle

Source

pub fn network_id(&self) -> &str

Network placement used for the caller’s exact permission binding.

Source

pub fn construction_limits(&self) -> Result<SiteLimits, SiteError>

Returns the explicitly configured positive construction limits.

§Errors

Construction is not configured.

Source

pub fn subscribe_plan( &self, id: u64, subject: &str, schemas: &[SchemaId], install: Option<InboxInstall>, ) -> Result<ConnectionSubscription, SiteError>

Subscribes to the current plan before any later changes, under its writer lock.

§Errors

Missing subject, watcher bound, schema or inbox refusal.

Source§

impl Lifecycle

Source

pub fn bind_site_console( &self, console: &Arc<ConsoleHub>, ) -> Result<(), SiteError>

Installs the existing hub’s event signal without another publisher or timer.

§Errors

The signal was already bound.

Source

pub fn refresh_sites(&self) -> Result<(), SiteError>

Repairs retained current values after a durable outcome or restart.

§Errors

A target, retained stream or hub signal failed.

Source§

impl Lifecycle

Source

pub fn prepare_trial( self: &Arc<Self>, connection: u64, session: Option<&dyn LysSession>, registration: &WorkerRegistration, process: Option<&ProcessGrant>, at_ms: u64, ) -> Result<Option<TrialPermit>, SiteError>

Validates schemas and signed builder identity, then reserves completion’s barrier before the directory stores anything. Both checks precede serving.

§Errors

Foreign holder, schema mismatch, missing serve grant or another trial.

Source

pub fn trial_closed(&self, connection: u64) -> Result<(), SiteError>

Called by the directory owner for close and replacement, under the same registration hold that removes the index entry. No timer infers closure.

§Errors

A poisoned registry prevents an uncertain completion.

Source

pub fn admit_trial_call( &self, session: Option<&dyn LysSession>, subject: &str, at_ms: u64, ) -> Result<bool, SiteError>

Fences every Building subject before routing and again before reply release. Identity alone permits no call; the caller still needs its grant.

§Errors

A third party, absent pass or the pass’s own call refusal.

Source

pub fn trial_connection(&self, service: &str) -> Result<Option<u64>, SiteError>

Current registered or reserved trial connection, used by topology.

§Errors

The registry lock is poisoned.

Source§

impl Lifecycle

Source

pub fn open( templates: &[ServiceTemplateConfig], dir: PathBuf, network: String, placer: Option<Arc<dyn Placer>>, ) -> Result<Arc<Self>, LifecycleError>

Opens the registry in dir, reading every record once.

network is the Lys network services are placed under; the address a started process connects to is given by Self::listening.

§Errors

The directory cannot be made or read, or a record in it is not one.

Source

pub fn listening(&self, address: String)

Records the address the server listens on; a process is started only after it is known. A second call changes nothing.

Source

pub fn list( &self, visible: impl Fn(&ServiceRecord) -> bool, ) -> Result<Value, LifecycleError>

The templates and every service visible keeps, with whether a process is running for it, as the services.list answer.

§Errors

The registry lock is poisoned.

Source

pub fn record(&self, id: &str) -> Result<ServiceRecord, LifecycleError>

The record of id.

§Errors

No such service, or the lock is poisoned.

Source

pub fn create( &self, template: &str, name: &str, holder: &str, operation: &str, now_ms: u64, ) -> Result<ServiceRecord, LifecycleError>

Creates a service named name from template for holder, asleep, after placing it and its subjects in Lys. The same operation from the same holder answers the same service and places nothing twice.

§Errors

By name: the template, the name, the placement or the store.

Source

pub fn placed_since(&self, subject: &str, since_ms: u64) -> bool

Whether a service serving subject, not retired, was placed in Lys at or after since_ms: a pass issued before then cannot carry its rights, so its offline refusal says nothing and Lys is asked live.

Trait Implementations§

Source§

impl Debug for Lifecycle

Source§

fn fmt(&self, out: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
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, 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