Skip to content

Commit

Permalink
refactor: Only pass network settings to event_handler
Browse files Browse the repository at this point in the history
  • Loading branch information
bgins committed Nov 27, 2023
1 parent 4a0ad7f commit 028212e
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 28 deletions.
56 changes: 30 additions & 26 deletions homestar-runtime/src/event_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,29 +114,29 @@ where
DB: Database,
{
fn setup_channel(
settings: &settings::Node,
settings: &settings::Network,
) -> (
channel::AsyncChannelSender<Event>,
channel::AsyncChannelReceiver<Event>,
) {
channel::AsyncChannel::with(settings.network.events_buffer_len)
channel::AsyncChannel::with(settings.events_buffer_len)
}

/// Create an [EventHandler] with channel sender/receiver defaults.
#[cfg(feature = "websocket-notify")]
pub(crate) fn new(
swarm: Swarm<ComposedBehaviour>,
db: DB,
settings: &settings::Node,
settings: &settings::Network,
ws_evt_sender: webserver::Notifier<notifier::Message>,
ws_workflow_sender: webserver::Notifier<notifier::Message>,
) -> Self {
let (sender, receiver) = Self::setup_channel(settings);
let sender = Arc::new(sender);
Self {
receipt_quorum: settings.network.libp2p.dht.receipt_quorum,
workflow_quorum: settings.network.libp2p.dht.workflow_quorum,
p2p_provider_timeout: settings.network.libp2p.dht.p2p_provider_timeout,
receipt_quorum: settings.libp2p.dht.receipt_quorum,
workflow_quorum: settings.libp2p.dht.workflow_quorum,
p2p_provider_timeout: settings.libp2p.dht.p2p_provider_timeout,
db,
swarm,
cache: Arc::new(setup_cache(sender.clone())),
Expand All @@ -146,33 +146,37 @@ where
request_response_senders: FnvHashMap::default(),
connections: Connections {
peers: FnvHashMap::default(),
max_peers: settings.network.libp2p.max_connected_peers,
max_peers: settings.libp2p.max_connected_peers,
},
rendezvous: Rendezvous {
registration_ttl: settings.network.libp2p.rendezvous.registration_ttl,
discovery_interval: settings.network.libp2p.rendezvous.discovery_interval,
registration_ttl: settings.libp2p.rendezvous.registration_ttl,
discovery_interval: settings.libp2p.rendezvous.discovery_interval,
discovered_peers: FnvHashMap::default(),
cookies: FnvHashMap::default(),
},
pubsub_enabled: settings.network.libp2p.pubsub.enable,
pubsub_enabled: settings.libp2p.pubsub.enable,
ws_evt_sender,
ws_workflow_sender,
node_addresses: settings.network.libp2p.node_addresses.clone(),
announce_addresses: settings.network.libp2p.announce_addresses.clone(),
external_address_limit: settings.network.libp2p.max_announce_addresses,
poll_cache_interval: settings.network.poll_cache_interval,
node_addresses: settings.libp2p.node_addresses.clone(),
announce_addresses: settings.libp2p.announce_addresses.clone(),
external_address_limit: settings.libp2p.max_announce_addresses,
poll_cache_interval: settings.poll_cache_interval,
}
}

/// Create an [EventHandler] with channel sender/receiver defaults.
#[cfg(not(feature = "websocket-notify"))]
pub(crate) fn new(swarm: Swarm<ComposedBehaviour>, db: DB, settings: &settings::Node) -> Self {
pub(crate) fn new(
swarm: Swarm<ComposedBehaviour>,
db: DB,
settings: &settings::Network,
) -> Self {
let (sender, receiver) = Self::setup_channel(settings);
let sender = Arc::new(sender);
Self {
receipt_quorum: settings.network.libp2p.dht.receipt_quorum,
workflow_quorum: settings.network.libp2p.dht.workflow_quorum,
p2p_provider_timeout: settings.network.libp2p.dht.p2p_provider_timeout,
receipt_quorum: settings.libp2p.dht.receipt_quorum,
workflow_quorum: settings.libp2p.dht.workflow_quorum,
p2p_provider_timeout: settings.libp2p.dht.p2p_provider_timeout,
db,
swarm,
cache: Arc::new(setup_cache(sender.clone())),
Expand All @@ -182,19 +186,19 @@ where
request_response_senders: FnvHashMap::default(),
connections: Connections {
peers: FnvHashMap::default(),
max_peers: settings.network.libp2p.max_connected_peers,
max_peers: settings.libp2p.max_connected_peers,
},
rendezvous: Rendezvous {
registration_ttl: settings.network.libp2p.rendezvous.registration_ttl,
discovery_interval: settings.network.libp2p.rendezvous.discovery_interval,
registration_ttl: settings.libp2p.rendezvous.registration_ttl,
discovery_interval: settings.libp2p.rendezvous.discovery_interval,
discovered_peers: FnvHashMap::default(),
cookies: FnvHashMap::default(),
},
pubsub_enabled: settings.network.libp2p.pubsub.enable,
node_addresses: settings.network.libp2p.node_addresses.clone(),
announce_addresses: settings.network.libp2p.announce_addresses.clone(),
external_address_limit: settings.network.libp2p.max_announce_addresses,
poll_cache_interval: settings.network.poll_cache_interval,
pubsub_enabled: settings.libp2p.pubsub.enable,
node_addresses: settings.libp2p.node_addresses.clone(),
announce_addresses: settings.libp2p.announce_addresses.clone(),
external_address_limit: settings.libp2p.max_announce_addresses,
poll_cache_interval: settings.poll_cache_interval,
}
}

Expand Down
5 changes: 3 additions & 2 deletions homestar-runtime/src/runner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,10 @@ impl Runner {
};

#[cfg(feature = "websocket-notify")]
let event_handler = EventHandler::new(swarm, db, settings.node(), ws_evt_tx, ws_msg_tx);
let event_handler =
EventHandler::new(swarm, db, settings.node().network(), ws_evt_tx, ws_msg_tx);
#[cfg(not(feature = "websocket-notify"))]
let event_handler = EventHandler::new(swarm, db, settings.node());
let event_handler = EventHandler::new(swarm, db, settings.node().network());

let event_sender = event_handler.sender();

Expand Down

0 comments on commit 028212e

Please sign in to comment.