diff --git a/src/engine/store/plugin.rs b/src/engine/store/plugin.rs index 5d0698f..e1d876f 100644 --- a/src/engine/store/plugin.rs +++ b/src/engine/store/plugin.rs @@ -145,7 +145,23 @@ impl StrategyEngine { .upgrade() .expect("Failed to upgrade engine (StrategyEngine)"); - loop {} + let pair = self.pair.lock().await.clone(); + + loop { + match pair.strategy.recv().await? { + Some(StrategyMessage::Log(log)) => { + engine.terminal_server.log_raw(log).await?; + } + Some(StrategyMessage::RequestOHLC { + symbol, + timeframe, + count, + }) => {} + Some(StrategyMessage::Signal(signal)) => {} + Some(StrategyMessage::SubscribeCandle { symbol, timeframe }) => {} + None => {} + } + } } pub async fn run_risk(&self) -> tokio::io::Result<()> { diff --git a/src/engine/terminal.rs b/src/engine/terminal.rs index 7de2c44..62170fa 100644 --- a/src/engine/terminal.rs +++ b/src/engine/terminal.rs @@ -169,6 +169,13 @@ impl TerminalServer { .await } + pub async fn log_raw(self: &Arc, log: EventLog) -> tokio::io::Result<()> { + self.logs.lock().await.push(log.clone()); + + self.broadcast(pulse_wire::terminal::TerminalServerMessage::AddLog(log)) + .await + } + pub async fn info(self: &Arc, name: &str, message: &str) -> tokio::io::Result<()> { self.log(LogKind::Info, name, message).await }