use crate::sync::SyncManager;
use crate::{NodeClients, NodeManagers, NodeState};
use actix::Actor;
use calimero_blobstore::BlobManager as BlobStore;
use calimero_context_client::client::ContextClient;
use calimero_node_primitives::client::NodeClient;
mod startup;
#[derive(Debug)]
pub struct NodeManager {
pub(crate) clients: NodeClients,
pub(crate) managers: NodeManagers,
pub(crate) state: NodeState,
}
impl NodeManager {
pub(crate) fn new(
blobstore: BlobStore,
sync_manager: SyncManager,
context_client: ContextClient,
node_client: NodeClient,
state: NodeState,
) -> Self {
Self {
clients: NodeClients {
context: context_client,
node: node_client,
},
managers: NodeManagers {
blobstore,
sync: sync_manager,
},
state,
}
}
}
impl Actor for NodeManager {
type Context = actix::Context<Self>;
fn started(&mut self, ctx: &mut Self::Context) {
self.setup_startup_subscriptions(ctx);
self.setup_maintenance_intervals(ctx);
self.setup_hash_heartbeat_interval(ctx);
}
}