pub trait AccessOpStore<O, D = RegionData>: Sendwhere
    O: OpRegion<D>,
    D: RegionDataConstraints,{
    // Required methods
    fn query_op_data(&self, region: &RegionCoords) -> Vec<Arc<O>, Global>;
    fn query_region_data(&self, region: &RegionCoords) -> D;
    fn fetch_region_set(
        &self,
        coords: RegionCoordSetLtcs
    ) -> MustBoxFuture<'_, Result<RegionSetLtcs<D>, ()>> ;
    fn integrate_ops<Ops>(&mut self, ops: Ops)
       where Ops: Clone + Iterator<Item = Arc<O>>;
    fn gossip_params(&self) -> GossipParams;
    fn topo(&self) -> &Topology;

    // Provided methods
    fn integrate_op(&mut self, op: Arc<O>) { ... }
    fn region_set(
        &self,
        arq_set: ArqSetImpl<SpaceOffset>,
        now: TimeQuantum
    ) -> RegionSet<D> { ... }
}
Expand description

All methods involved in accessing the op store, to be implemented by the host.

Required Methods§

fn query_op_data(&self, region: &RegionCoords) -> Vec<Arc<O>, Global>

Query the actual ops inside a region

fn query_region_data(&self, region: &RegionCoords) -> D

Query the RegionData of a region, including the hash of all ops, size, and count

fn fetch_region_set( &self, coords: RegionCoordSetLtcs ) -> MustBoxFuture<'_, Result<RegionSetLtcs<D>, ()>>

Fetch a set of Regions (the coords and the data) given the set of coords

fn integrate_ops<Ops>(&mut self, ops: Ops)where Ops: Clone + Iterator<Item = Arc<O>>,

Integrate incoming ops, updating the necessary stores

fn gossip_params(&self) -> GossipParams

Get the GossipParams associated with this store

fn topo(&self) -> &Topology

Get the Topology associated with this store

Provided Methods§

fn integrate_op(&mut self, op: Arc<O>)

Integrate a single op

fn region_set( &self, arq_set: ArqSetImpl<SpaceOffset>, now: TimeQuantum ) -> RegionSet<D>

Get the RegionSet for this node, suitable for gossiping

Implementors§

§

impl AccessOpStore<OpData, RegionData> for TestNode

§

impl<D, O> AccessOpStore<O, D> for OpStore<O, D>where D: RegionDataConstraints, O: OpRegion<D>,