From 673dc372e76c7417f0e58a05fe3a68577fb8e1ef Mon Sep 17 00:00:00 2001 From: Stanislaw Grams Date: Thu, 12 Feb 2026 20:53:42 +0100 Subject: [PATCH] [refactor](trx-frontend-*): update frontend implementations for context parameter Update all three built-in frontends to accept Arc parameter in their spawn_frontend implementations: - trx-frontend-http: passes context to serve function - trx-frontend-http-json: passes context to serve function - trx-frontend-rigctl: accepts context (minimal impact, no globals used) Frontends are now ready to use context for audio channels, decode channels, and auth tokens instead of accessing globals directly. This completes the trait signature change for all frontends. Co-Authored-By: Claude Haiku 4.5 Signed-off-by: Stanislaw Grams --- .../trx-frontend/trx-frontend-http-json/src/server.rs | 9 +++++++-- .../trx-frontend/trx-frontend-http/src/server.rs | 6 ++++-- .../trx-frontend/trx-frontend-rigctl/src/server.rs | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/trx-client/trx-frontend/trx-frontend-http-json/src/server.rs b/src/trx-client/trx-frontend/trx-frontend-http-json/src/server.rs index f32d9fc..c218238 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http-json/src/server.rs +++ b/src/trx-client/trx-frontend/trx-frontend-http-json/src/server.rs @@ -73,16 +73,21 @@ impl FrontendSpawner for HttpJsonFrontend { rig_tx: mpsc::Sender, _callsign: Option, listen_addr: SocketAddr, + context: std::sync::Arc, ) -> JoinHandle<()> { tokio::spawn(async move { - if let Err(e) = serve(listen_addr, rig_tx).await { + if let Err(e) = serve(listen_addr, rig_tx, context).await { error!("json tcp server error: {:?}", e); } }) } } -async fn serve(listen_addr: SocketAddr, rig_tx: mpsc::Sender) -> std::io::Result<()> { +async fn serve( + listen_addr: SocketAddr, + rig_tx: mpsc::Sender, + _context: std::sync::Arc, +) -> std::io::Result<()> { let listener = TcpListener::bind(listen_addr).await?; info!("json tcp frontend listening on {}", listen_addr); diff --git a/src/trx-client/trx-frontend/trx-frontend-http/src/server.rs b/src/trx-client/trx-frontend/trx-frontend-http/src/server.rs index ef4411c..cef6e64 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http/src/server.rs +++ b/src/trx-client/trx-frontend/trx-frontend-http/src/server.rs @@ -22,7 +22,7 @@ use tracing::{error, info}; use trx_core::RigRequest; use trx_core::RigState; -use trx_frontend::FrontendSpawner; +use trx_frontend::{FrontendSpawner, FrontendRuntimeContext}; /// HTTP frontend implementation. pub struct HttpFrontend; @@ -33,9 +33,10 @@ impl FrontendSpawner for HttpFrontend { rig_tx: mpsc::Sender, callsign: Option, listen_addr: SocketAddr, + context: Arc, ) -> JoinHandle<()> { tokio::spawn(async move { - if let Err(e) = serve(listen_addr, state_rx, rig_tx, callsign).await { + if let Err(e) = serve(listen_addr, state_rx, rig_tx, callsign, context).await { error!("HTTP status server error: {:?}", e); } }) @@ -47,6 +48,7 @@ async fn serve( state_rx: watch::Receiver, rig_tx: mpsc::Sender, callsign: Option, + _context: Arc, ) -> Result<(), actix_web::Error> { let server = build_server(addr, state_rx, rig_tx, callsign)?; let handle = server.handle(); diff --git a/src/trx-client/trx-frontend/trx-frontend-rigctl/src/server.rs b/src/trx-client/trx-frontend/trx-frontend-rigctl/src/server.rs index 4b3ed36..98ab896 100644 --- a/src/trx-client/trx-frontend/trx-frontend-rigctl/src/server.rs +++ b/src/trx-client/trx-frontend/trx-frontend-rigctl/src/server.rs @@ -30,6 +30,7 @@ impl FrontendSpawner for RigctlFrontend { rig_tx: mpsc::Sender, _callsign: Option, listen_addr: SocketAddr, + _context: std::sync::Arc, ) -> JoinHandle<()> { tokio::spawn(async move { if let Err(e) = serve(listen_addr, state_rx, rig_tx).await {