[][src]Struct declarative_dataflow::server::Server

pub struct Server<T, Token> where
    T: Timestamp + Lattice + TotalOrder,
    Token: Hash + Eq + Copy
{ pub config: Config, pub t0: Instant, pub context: Context<T>, pub interests: HashMap<String, HashSet<Token>>, pub tenant_owner: Rc<RefCell<HashMap<Token, u64>>>, pub probe: ProbeHandle<T>, pub scheduler: Rc<RefCell<Scheduler>>, // some fields omitted }

Server context maintaining globally registered arrangements and input handles.

Fields

config: Config

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.

tenant_owner: Rc<RefCell<HashMap<Token, u64>>>

Mapping from client tokens to the workers managing their connections. Only maintained for clients participating in multi-tenant queries.

probe: ProbeHandle<T>

Probe keeping track of overall dataflow progress.

scheduler: Rc<RefCell<Scheduler>>

Scheduler managing deferred operator activations.

Methods

impl<T, Token> Server<T, Token> where
    T: Timestamp + Lattice + TotalOrder + Default + Sub<Output = T> + From<Time>,
    Token: Hash + Eq + Copy
[src]

pub fn new(config: Config) -> Self[src]

Creates a new server state from a configuration.

pub fn new_at(config: Config, t0: Instant) -> Self[src]

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.

pub fn builtins() -> Vec<Request>[src]

Returns commands to install built-in plans.

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

Handle a Transact request.

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

Handles an Interest request.

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

Handle a Register request.

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

Handle an AdvanceDomain request.

pub fn uninterest(&mut self, client: Token, name: &str)[src]

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

pub fn disconnect_client(&mut self, client: Token)[src]

Cleans up all bookkeeping state for the specified client.

pub fn is_any_outdated(&self) -> bool[src]

Returns true iff the probe is behind any input handle. Mostly used as a convenience method during testing.

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

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

impl<Token: Hash + Eq + Copy> Server<u64, Token>[src]

pub fn register_source<S: Scope<Timestamp = u64>>(
    &mut self,
    source: Source,
    scope: &mut S
) -> Result<(), Error>
[src]

Handle a RegisterSource request.

Auto Trait Implementations

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

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

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.