Usage cleanup and client initial signals
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
use std::sync::{Arc, Weak};
|
use pulse_sdk::prelude::*;
|
||||||
|
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
use hypersdk::{
|
use hypersdk::{
|
||||||
@@ -8,7 +8,7 @@ use hypersdk::{
|
|||||||
ws::{ConnectionHandle, ConnectionStream, Event},
|
ws::{ConnectionHandle, ConnectionStream, Event},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use pulse_sdk::general::Signal;
|
use std::sync::{Arc, Weak};
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
|
|
||||||
use crate::{engine::Engine, store::config::RiskConfig};
|
use crate::{engine::Engine, store::config::RiskConfig};
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
|
use pulse_sdk::prelude::*;
|
||||||
|
|
||||||
use anyhow::Context;
|
use anyhow::Context;
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
use hypersdk::hypercore::{
|
use hypersdk::hypercore::{
|
||||||
self, CandleInterval, Subscription,
|
self, CandleInterval, Subscription,
|
||||||
ws::{ConnectionHandle, ConnectionStream, Event},
|
ws::{ConnectionHandle, ConnectionStream, Event},
|
||||||
};
|
};
|
||||||
use pulse_sdk::prelude::*;
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashSet,
|
collections::HashSet,
|
||||||
sync::{Arc, Weak},
|
sync::{Arc, Weak},
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
use crate::engine::Engine;
|
|
||||||
use pulse_sdk::{map_postcard_err, prelude::*};
|
use pulse_sdk::{map_postcard_err, prelude::*};
|
||||||
|
|
||||||
|
use crate::engine::Engine;
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashMap,
|
collections::HashMap,
|
||||||
sync::{Arc, Weak},
|
sync::{Arc, Weak},
|
||||||
@@ -37,7 +38,7 @@ impl TerminalServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub async fn run_server(self: Arc<Self>) -> tokio::io::Result<()> {
|
pub async fn run_server(self: Arc<Self>) -> tokio::io::Result<()> {
|
||||||
let path = pulse_sdk::server_path();
|
let path = server_path();
|
||||||
|
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
tokio::fs::remove_file(&path).await?;
|
tokio::fs::remove_file(&path).await?;
|
||||||
@@ -103,7 +104,13 @@ impl TerminalServer {
|
|||||||
|
|
||||||
self.send_to(
|
self.send_to(
|
||||||
id,
|
id,
|
||||||
pulse_sdk::terminal::TerminalServerMessage::SetLogs(self.logs.lock().await.clone()),
|
TerminalServerMessage::SetLogs(self.logs.lock().await.clone()),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
self.send_to(
|
||||||
|
id,
|
||||||
|
TerminalServerMessage::SignalsUpdated(engine.signals.lock().await.clone()),
|
||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
@@ -151,7 +158,7 @@ impl TerminalServer {
|
|||||||
|
|
||||||
pub async fn broadcast(
|
pub async fn broadcast(
|
||||||
self: &Arc<Self>,
|
self: &Arc<Self>,
|
||||||
message: pulse_sdk::terminal::TerminalServerMessage,
|
message: TerminalServerMessage,
|
||||||
) -> tokio::io::Result<()> {
|
) -> tokio::io::Result<()> {
|
||||||
let msg = map_postcard_err(postcard::to_allocvec(&message))?;
|
let msg = map_postcard_err(postcard::to_allocvec(&message))?;
|
||||||
|
|
||||||
@@ -263,7 +270,7 @@ impl TerminalServer {
|
|||||||
pub async fn send_to(
|
pub async fn send_to(
|
||||||
self: &Arc<Self>,
|
self: &Arc<Self>,
|
||||||
id: &usize,
|
id: &usize,
|
||||||
message: pulse_sdk::terminal::TerminalServerMessage,
|
message: TerminalServerMessage,
|
||||||
) -> tokio::io::Result<()> {
|
) -> tokio::io::Result<()> {
|
||||||
Self::send_to_client(
|
Self::send_to_client(
|
||||||
self.clients.lock().await.get_mut(id).ok_or_else(|| {
|
self.clients.lock().await.get_mut(id).ok_or_else(|| {
|
||||||
@@ -319,8 +326,7 @@ impl TerminalServer {
|
|||||||
|
|
||||||
self.logs.lock().await.push(log.clone());
|
self.logs.lock().await.push(log.clone());
|
||||||
|
|
||||||
self.broadcast(pulse_sdk::terminal::TerminalServerMessage::AddLog(log))
|
self.broadcast(TerminalServerMessage::AddLog(log)).await
|
||||||
.await
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn info(self: &Arc<Self>, name: &str, message: &str) -> tokio::io::Result<()> {
|
pub async fn info(self: &Arc<Self>, name: &str, message: &str) -> tokio::io::Result<()> {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::collections::HashMap;
|
|
||||||
|
|
||||||
use pulse_sdk::general::Allocation;
|
use pulse_sdk::general::Allocation;
|
||||||
|
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize)]
|
||||||
pub struct RiskConfig {
|
pub struct RiskConfig {
|
||||||
pub risk_per_trade: Allocation,
|
pub risk_per_trade: Allocation,
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
use std::{path::PathBuf, process::Stdio};
|
use pulse_sdk::{map_postcard_err, prelude::*};
|
||||||
|
|
||||||
use pulse_sdk::{
|
use std::{path::PathBuf, process::Stdio};
|
||||||
map_postcard_err,
|
|
||||||
strategy::{StrategyEngineMessage, StrategyManifest, StrategyMessage},
|
|
||||||
};
|
|
||||||
use tokio::{
|
use tokio::{
|
||||||
io::{AsyncReadExt, AsyncWriteExt},
|
io::{AsyncReadExt, AsyncWriteExt},
|
||||||
process::{Child, ChildStdout, Command},
|
process::{Child, ChildStdout, Command},
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use hypersdk::hypercore::Side;
|
|
||||||
use pulse_sdk::prelude::*;
|
use pulse_sdk::prelude::*;
|
||||||
|
|
||||||
|
use hypersdk::hypercore::Side;
|
||||||
|
|
||||||
pub trait Formatted {
|
pub trait Formatted {
|
||||||
fn get_formatted(&self) -> Vec<String>;
|
fn get_formatted(&self) -> Vec<String>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ pub mod command;
|
|||||||
pub mod formatting;
|
pub mod formatting;
|
||||||
pub mod terminal;
|
pub mod terminal;
|
||||||
|
|
||||||
|
use pulse_sdk::prelude::*;
|
||||||
|
|
||||||
use std::any::Any;
|
use std::any::Any;
|
||||||
|
|
||||||
use chrono::{Local, Utc};
|
use chrono::{Local, Utc};
|
||||||
@@ -21,8 +23,6 @@ use pulse_ui::{
|
|||||||
|
|
||||||
use crate::formatting::{Formatted, apply_padding};
|
use crate::formatting::{Formatted, apply_padding};
|
||||||
|
|
||||||
use pulse_sdk::prelude::*;
|
|
||||||
|
|
||||||
pub struct PulseTradeApp {
|
pub struct PulseTradeApp {
|
||||||
sock: Option<terminal::TerminalClient>,
|
sock: Option<terminal::TerminalClient>,
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use pulse_sdk::{map_postcard_err, prelude::*};
|
use pulse_sdk::{map_postcard_err, prelude::*};
|
||||||
|
|
||||||
use pulse_ui::state::State;
|
use pulse_ui::state::State;
|
||||||
|
|
||||||
use tokio::{
|
use tokio::{
|
||||||
|
|||||||
Reference in New Issue
Block a user