1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! # ca_gateway — CA fan-out gateway (C++ ca-gateway equivalent)
//!
//! Pure Rust port of [EPICS ca-gateway](https://github.com/epics-modules/ca-gateway).
//! A Channel Access proxy that:
//!
//! - Accepts downstream client connections (CA server side)
//! - Connects to upstream IOCs (CA client side)
//! - Caches PV values and fans out monitor events to multiple clients
//! - Applies access security rules from a `.pvlist` file
//! - Supports PV name aliasing with regex backreferences
//! - Tracks per-PV statistics and exposes them as PVs
//!
//! ## Architecture
//!
//! ```text
//! Upstream IOCs Gateway Downstream Clients
//! ┌─────────┐ ┌─────────┐ ┌─────────┐
//! │ IOC #1 │ ◄── CaClient ──┤ ├── CaServer ──►│ caget │
//! └─────────┘ │ PvCache │ └─────────┘
//! ┌─────────┐ │ + ACL │ ┌─────────┐
//! │ IOC #2 │ ◄── CaClient ──┤ + Stats├── CaServer ──►│ CSS │
//! └─────────┘ │ │ └─────────┘
//! └─────────┘ (~1000)
//! ```
//!
//! ## Sub-modules
//!
//! - [`cache`] — PvCache, GwPvEntry, PvState (5-state FSM)
//! - [`pvlist`] — `.pvlist` configuration file parser
//! - [`access`] — access security adapter (epics-base-rs ACF)
//! - [`upstream`] — CaClient adapter
//! - [`downstream`] — CaServer adapter
//! - [`stats`] — gateway statistics PVs
//! - [`server`] — GatewayServer top-level
pub use AccessConfig;
pub use BeaconAnomaly;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use Stats;
pub use UpstreamManager;