pub struct LeaderScheduleCache {
pub cached_schedules: RwLock<(HashMap<Epoch, Arc<LeaderSchedule>>, VecDeque<u64>)>,
epoch_schedule: EpochSchedule,
max_epoch: RwLock<Epoch>,
max_schedules: CacheCapacity,
fixed_schedule: Option<Arc<FixedSchedule>>,
}
Fields§
§cached_schedules: RwLock<(HashMap<Epoch, Arc<LeaderSchedule>>, VecDeque<u64>)>
§epoch_schedule: EpochSchedule
§max_epoch: RwLock<Epoch>
§max_schedules: CacheCapacity
§fixed_schedule: Option<Arc<FixedSchedule>>
Implementations§
source§impl LeaderScheduleCache
impl LeaderScheduleCache
pub fn new_from_bank(bank: &Bank) -> Self
pub fn new(epoch_schedule: EpochSchedule, root_bank: &Bank) -> Self
pub fn set_max_schedules(&mut self, max_schedules: usize)
pub fn max_schedules(&self) -> usize
pub fn set_root(&self, root_bank: &Bank)
pub fn slot_leader_at(&self, slot: Slot, bank: Option<&Bank>) -> Option<Pubkey>
sourcepub fn next_leader_slot(
&self,
pubkey: &Pubkey,
current_slot: Slot,
bank: &Bank,
blockstore: Option<&Blockstore>,
max_slot_range: u64
) -> Option<(Slot, Slot)>
pub fn next_leader_slot( &self, pubkey: &Pubkey, current_slot: Slot, bank: &Bank, blockstore: Option<&Blockstore>, max_slot_range: u64 ) -> Option<(Slot, Slot)>
Returns the (next slot, last slot) consecutive range of slots after the given current_slot that the given node will be leader.
pub fn set_fixed_leader_schedule( &mut self, fixed_schedule: Option<FixedSchedule> )
fn slot_leader_at_no_compute(&self, slot: Slot) -> Option<Pubkey>
fn slot_leader_at_else_compute(&self, slot: Slot, bank: &Bank) -> Option<Pubkey>
pub fn get_epoch_leader_schedule( &self, epoch: Epoch ) -> Option<Arc<LeaderSchedule>>
fn get_epoch_schedule_else_compute( &self, epoch: Epoch, bank: &Bank ) -> Option<Arc<LeaderSchedule>>
fn compute_epoch_schedule( &self, epoch: Epoch, bank: &Bank ) -> Option<Arc<LeaderSchedule>>
fn retain_latest( schedules: &mut HashMap<Epoch, Arc<LeaderSchedule>>, order: &mut VecDeque<u64>, max_schedules: usize )
Trait Implementations§
source§impl Default for LeaderScheduleCache
impl Default for LeaderScheduleCache
source§fn default() -> LeaderScheduleCache
fn default() -> LeaderScheduleCache
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl RefUnwindSafe for LeaderScheduleCache
impl Send for LeaderScheduleCache
impl Sync for LeaderScheduleCache
impl Unpin for LeaderScheduleCache
impl UnwindSafe for LeaderScheduleCache
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request