Struct nando_lib::transaction_manager::TransactionManager
source · pub struct TransactionManager {
txn_id_counter: AtomicUsize,
epic_completion_handle_map: DashMap<EcbId, Arc<EpicCompletionHandle>>,
task_fwd_fn: Box<dyn Fn(SpawnedTask, Option<HostId>) + Send + Sync>,
tasks_fwd_to_fn: Box<dyn Fn(Vec<SpawnedTask>, Option<HostId>) + Send + Sync>,
task_completion_fwd_fn: Box<dyn Fn(TaskCompletionNotification) + Send + Sync>,
async_rt_manager: Arc<AsyncRuntimeManager>,
}Fields§
§txn_id_counter: AtomicUsize§epic_completion_handle_map: DashMap<EcbId, Arc<EpicCompletionHandle>>§task_fwd_fn: Box<dyn Fn(SpawnedTask, Option<HostId>) + Send + Sync>§tasks_fwd_to_fn: Box<dyn Fn(Vec<SpawnedTask>, Option<HostId>) + Send + Sync>§task_completion_fwd_fn: Box<dyn Fn(TaskCompletionNotification) + Send + Sync>§async_rt_manager: Arc<AsyncRuntimeManager>Implementations§
source§impl TransactionManager
impl TransactionManager
fn new( async_rt_manager: Arc<AsyncRuntimeManager>, _location_manager: AsyncArc<LocationManager> ) -> Self
pub fn get_transaction_manager( maybe_rt_manager: Option<Arc<AsyncRuntimeManager>>, maybe_location_manager: Option<AsyncArc<LocationManager>> ) -> &'static TransactionManager
pub fn get_transaction_manager_mut( maybe_rt_manager: Option<Arc<AsyncRuntimeManager>>, maybe_location_manager: Option<AsyncArc<LocationManager>> ) -> &'static mut TransactionManager
pub fn set_task_fwd_fn( &mut self, task_fwd_fn: Box<dyn Fn(SpawnedTask, Option<HostId>) + Send + Sync> )
pub fn set_tasks_fwd_to_fn( &mut self, tasks_fwd_to_fn: Box<dyn Fn(Vec<SpawnedTask>, Option<HostId>) + Send + Sync> )
pub fn set_task_completion_fwd_fn( &mut self, task_completion_fwd_fn: Box<dyn Fn(TaskCompletionNotification) + Send + Sync> )
pub async fn execute_nando( &self, activation_intent: NandoActivationIntent, await_epic_result: bool, with_plan: Option<String> ) -> Result<(Vec<ActivationOutput>, Vec<(ObjectId, ObjectVersion)>), String>
pub async fn execute_spawned_task( &self, spawned_task: SpawnedTask ) -> Result<(Vec<ActivationOutput>, Vec<(ObjectId, ObjectVersion)>), String>
pub fn store_spawned_task(&self, spawned_task: SpawnedTask)
pub async fn whomstone_object( &self, object_id: ObjectId ) -> Result<ObjectVersion, String>
pub fn mark_epic_completed( &self, root_ecb_id: EcbId, completion_timestamp: Option<Instant> )
pub async fn get_epic_result_and_status( &self, ecb_id: EcbId ) -> Result<(Option<NandoResult>, TaskStatus), String>
pub fn forward_task_completion( &self, task_completion_notification: TaskCompletionNotification )
pub fn schedule_parkable_entry(&self, entry: ControlRegistryEntry)
pub async fn handle_task_completion( &self, completed_task: EcbId, tasks_to_notify: Vec<(DownstreamTaskDependency, Option<NandoResult>)> ) -> Vec<ControlRegistryEntry>
pub fn forward_spawned_task(&self, spawned_task: SpawnedTask)
pub fn forward_spawned_tasks(&self, spawned_tasks: &Vec<SpawnedTask>)
pub fn forward_spawned_task_to( &self, spawned_task: SpawnedTask, host_id: HostId )
pub fn forward_spawned_tasks_to( &self, spawned_tasks: Vec<SpawnedTask>, host_id: HostId )
pub fn publish_objects( &self, objects_to_publish: Vec<(ObjectId, ObjectVersion)> )
Auto Trait Implementations§
impl !RefUnwindSafe for TransactionManager
impl Send for TransactionManager
impl Sync for TransactionManager
impl Unpin for TransactionManager
impl !UnwindSafe for TransactionManager
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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