Struct Server

Source
pub struct Server<T, Token>
where T: Timestamp + Lattice, Token: Hash + Eq + Copy,
{ pub config: Configuration, pub t0: Instant, pub context: Context<T>, pub interests: HashMap<String, HashSet<Token>>, pub probe: ProbeHandle<T>, pub scheduler: Rc<RefCell<Scheduler>>, /* private fields */ }
Expand description

Server context maintaining globally registered arrangements and input handles.

Fields§

§config: Configuration

Server configuration.

§t0: Instant

A timer started at the initation of the timely computation (copied from worker).

§context: Context<T>

Implementation context.

§interests: HashMap<String, HashSet<Token>>

Mapping from query names to interested client tokens.

§probe: ProbeHandle<T>

Probe keeping track of overall dataflow progress.

§scheduler: Rc<RefCell<Scheduler>>

Scheduler managing deferred operator activations.

Implementations§

Source§

impl<T, Token> Server<T, Token>
where T: Timestamp + Lattice + Default + Rewind, Token: Hash + Eq + Copy,

Source

pub fn new(config: Configuration) -> Self

Creates a new server state from a configuration.

Source

pub fn new_at(config: Configuration, t0: Instant) -> Self

Creates a new server state from a configuration with an additionally specified beginning of the computation: an instant in relation to which all durations will be measured.

Source

pub fn builtins() -> Vec<Request>

Returns commands to install built-in plans.

Source

pub fn transact( &mut self, tx_data: Vec<TxData>, owner: usize, worker_index: usize, ) -> Result<(), Error>

Handle a Transact request.

Source

pub fn interest<S: Scope<Timestamp = T>>( &mut self, name: &str, scope: &mut S, ) -> Result<Collection<S, Vec<Value>, isize>, Error>

Handles an Interest request.

Source

pub fn register(&mut self, req: Register) -> Result<(), Error>

Handle a Register request.

Source

pub fn register_source<S: Scope<Timestamp = T>>( &mut self, source: Box<dyn Sourceable<S>>, scope: &mut S, ) -> Result<(), Error>

Handle a RegisterSource request.

Source

pub fn advance_domain( &mut self, name: Option<String>, next: T, ) -> Result<(), Error>

Handle an AdvanceDomain request.

Source

pub fn uninterest(&mut self, client: Token, name: &str) -> Result<(), Error>

Handles an Uninterest request, possibly cleaning up dataflows that are no longer interesting to any client.

Source

pub fn disconnect_client(&mut self, client: Token) -> Result<(), Error>

Cleans up all bookkeeping state for the specified client.

Source

pub fn is_any_outdated(&self) -> bool

Returns true iff the probe is behind any input handle. Mostly used as a convenience method during testing. Using this within step_while is not safe in general and might lead to stalls.

Source

pub fn test_single<S: Scope<Timestamp = T>>( &mut self, scope: &mut S, rule: Rule, ) -> Collection<S, Vec<Value>, isize>

Helper for registering, publishing, and indicating interest in a single, named query. Used for testing.

Source§

impl<Token> Server<Duration, Token>
where Token: Hash + Eq + Copy,

Source

pub fn enable_logging<A: Allocate>( &self, worker: &mut Worker<A>, ) -> Result<(), Error>

Registers loggers for use in the various logging sources.

Source

pub fn shutdown_logging<A: Allocate>( &self, worker: &mut Worker<A>, ) -> Result<(), Error>

Unregisters loggers.

Auto Trait Implementations§

§

impl<T, Token> Freeze for Server<T, Token>
where T: Freeze,

§

impl<T, Token> !RefUnwindSafe for Server<T, Token>

§

impl<T, Token> !Send for Server<T, Token>

§

impl<T, Token> !Sync for Server<T, Token>

§

impl<T, Token> Unpin for Server<T, Token>
where T: Unpin, Token: Unpin,

§

impl<T, Token> !UnwindSafe for Server<T, Token>

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<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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.