Skip to main content

kompact_net/
lib.rs

1pub use kompact::{
2    KompactLogger,
3    component,
4    config,
5    default_components,
6    executors,
7    lookup,
8    messaging,
9    prelude::*,
10    routing,
11    runtime,
12    timer,
13};
14
15pub mod actors {
16    pub use kompact::prelude::{
17        Actor,
18        ActorPath,
19        Dispatcher,
20        DispatcherRef,
21        DynActorRef,
22        NamedPath,
23        SystemPath,
24        Transport,
25    };
26}
27
28pub mod dispatch {
29    pub use crate::dispatcher::{NetworkConfig, NetworkDispatcher};
30    pub use kompact::lookup;
31}
32
33pub mod net {
34    pub use crate::transport::{
35        Bridge,
36        ConnectionState,
37        NetworkBridgeError,
38        Protocol,
39        events,
40        network_thread,
41    };
42    pub use kompact::net::{SessionId, buffers, frames};
43    pub use std::net::SocketAddr;
44}
45
46mod dispatcher;
47mod events;
48mod queue_manager;
49mod transport;
50
51pub use crate::{
52    dispatcher::{NetworkConfig, NetworkDispatcher},
53    events::{NetworkStatus, NetworkStatusPort, NetworkStatusRequest},
54    transport::net_test_helpers,
55};
56
57pub trait NetworkSystemExt {
58    fn connect_network_status_port(&self, required: &mut RequiredPort<NetworkStatusPort>);
59}
60
61impl NetworkSystemExt for KompactSystem {
62    fn connect_network_status_port(&self, required: &mut RequiredPort<NetworkStatusPort>) {
63        self.with_dispatcher_definition(|dispatcher| {
64            let dispatcher = dispatcher
65                .downcast_mut::<NetworkDispatcher>()
66                .expect("System dispatcher is not provided by kompact-net");
67            biconnect_ports(dispatcher.network_status_port(), required);
68        });
69    }
70}
71
72pub mod prelude {
73    pub use crate::{NetworkConfig, NetworkDispatcher, NetworkSystemExt};
74    pub use kompact::prelude::*;
75}