Trait exocore_chain::pending::PendingStore [−][src]
pub trait PendingStore: Send + Sync + 'static {
fn put_operation(&mut self, operation: NewOperation) -> Result<bool, Error>;
fn update_operation_commit_status(
&mut self,
operation_id: OperationId,
status: CommitStatus
) -> Result<(), Error>;
fn get_operation(
&self,
operation_id: OperationId
) -> Result<Option<StoredOperation>, Error>;
fn get_group_operations(
&self,
group_id: GroupId
) -> Result<Option<StoredOperationsGroup>, Error>;
fn operations_iter<R>(
&self,
range: R
) -> Result<TimelineIterator<'_>, Error>
where
R: RangeBounds<OperationId>;
fn operations_count(&self) -> usize;
fn delete_operation(
&mut self,
operation_id: OperationId
) -> Result<(), Error>;
}
Expand description
Pending operations store. This store contains operations that have just been created and that aren’t committed to the chain yet.
Required methods
fn put_operation(&mut self, operation: NewOperation) -> Result<bool, Error>
fn put_operation(&mut self, operation: NewOperation) -> Result<bool, Error>
Adds or replaces the given operation into the store. Returns true if the operation already exists and got overwritten.
fn update_operation_commit_status(
&mut self,
operation_id: OperationId,
status: CommitStatus
) -> Result<(), Error>
fn update_operation_commit_status(
&mut self,
operation_id: OperationId,
status: CommitStatus
) -> Result<(), Error>
Updates the commit status of an operation. This information is not
replicated, and is populated by the CommitManager
so that the
PendingSynchronizer
and Engine
can get the chain status of an
operation without hitting the chain every time.
Returns Error::NotFound
if operation doesn’t exist.
fn get_operation(
&self,
operation_id: OperationId
) -> Result<Option<StoredOperation>, Error>
fn get_operation(
&self,
operation_id: OperationId
) -> Result<Option<StoredOperation>, Error>
Returns the operation with given id.
fn get_group_operations(
&self,
group_id: GroupId
) -> Result<Option<StoredOperationsGroup>, Error>
fn get_group_operations(
&self,
group_id: GroupId
) -> Result<Option<StoredOperationsGroup>, Error>
Returns all operations grouped under the given group id / operation id. An example of operation group is a block with its signatures / refusals operations. Entry operations are NOT stored in the block’s group since they could get added into different blocks (but only one will be committed).
fn operations_iter<R>(&self, range: R) -> Result<TimelineIterator<'_>, Error> where
R: RangeBounds<OperationId>,
fn operations_iter<R>(&self, range: R) -> Result<TimelineIterator<'_>, Error> where
R: RangeBounds<OperationId>,
Iterates through all operations in the store within the given range. The iterator returns operations sorted by operation ids.
fn operations_count(&self) -> usize
fn operations_count(&self) -> usize
Returns the number of operations in the store.
fn delete_operation(&mut self, operation_id: OperationId) -> Result<(), Error>
fn delete_operation(&mut self, operation_id: OperationId) -> Result<(), Error>
Deletes the operation with given id, or all operations grouped by this operation id if the operation was a group (ex: block with its signatures)