From 1eed3d2504b792c769721c136f6d73b6e2a95e2e Mon Sep 17 00:00:00 2001 From: RobDavenport Date: Sun, 14 Apr 2024 22:22:13 +0900 Subject: [PATCH] prepare release manager --- .../src/modes/arcade_mode/edit_game.rs | 1 - gamercade_app/src/modes/arcade_mode/mod.rs | 2 -- gamercade_app/src/task_manager/mod.rs | 9 +++----- gamercade_app/src/task_manager/release.rs | 23 +++++++++++++++++++ .../src/task_manager/super_task_manager.rs | 6 ++++- 5 files changed, 31 insertions(+), 10 deletions(-) delete mode 100644 gamercade_app/src/modes/arcade_mode/edit_game.rs create mode 100644 gamercade_app/src/task_manager/release.rs diff --git a/gamercade_app/src/modes/arcade_mode/edit_game.rs b/gamercade_app/src/modes/arcade_mode/edit_game.rs deleted file mode 100644 index 8b137891..00000000 --- a/gamercade_app/src/modes/arcade_mode/edit_game.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/gamercade_app/src/modes/arcade_mode/mod.rs b/gamercade_app/src/modes/arcade_mode/mod.rs index 4285713b..466575b4 100644 --- a/gamercade_app/src/modes/arcade_mode/mod.rs +++ b/gamercade_app/src/modes/arcade_mode/mod.rs @@ -1,13 +1,11 @@ use crate::app::AppDrawContext; mod creator_dashboard; -mod edit_game; mod login; mod online; mod sign_up; use creator_dashboard::*; -use edit_game::*; use login::*; use online::*; use sign_up::*; diff --git a/gamercade_app/src/task_manager/mod.rs b/gamercade_app/src/task_manager/mod.rs index 73e189c4..5258f998 100644 --- a/gamercade_app/src/task_manager/mod.rs +++ b/gamercade_app/src/task_manager/mod.rs @@ -17,6 +17,9 @@ pub use super_task_manager::*; mod auth; pub use auth::*; +mod release; +pub use release::*; + const SUPER_TASK_CHANNEL_SIZE: usize = 256; const TASK_CHANNEL_LENGTH: usize = 8; @@ -38,12 +41,6 @@ where } } - pub fn send_request(&self, request: REQUEST) { - if let Err(e) = self.sender.try_send(request) { - panic!("send_request failed {e}") - } - } - fn spawn_task( notification_tx: Sender, state: Arc>, diff --git a/gamercade_app/src/task_manager/release.rs b/gamercade_app/src/task_manager/release.rs new file mode 100644 index 00000000..c7b2ea6e --- /dev/null +++ b/gamercade_app/src/task_manager/release.rs @@ -0,0 +1,23 @@ +use super::{TaskManager, TaskRequest}; + +// TODO: This +pub type ReleaseManager = TaskManager; + +#[derive(Default)] +pub struct ReleaseManagerState { + downloads: Vec, +} + +pub enum ReleaseRequest { + DownloadRelease, +} + +impl TaskRequest for ReleaseRequest { + async fn handle_request( + self, + sender: &tokio::sync::mpsc::Sender, + state: &tokio::sync::Mutex, + ) { + todo!() + } +} diff --git a/gamercade_app/src/task_manager/super_task_manager.rs b/gamercade_app/src/task_manager/super_task_manager.rs index fa588183..51d598b4 100644 --- a/gamercade_app/src/task_manager/super_task_manager.rs +++ b/gamercade_app/src/task_manager/super_task_manager.rs @@ -2,7 +2,9 @@ use tokio::sync::mpsc::{channel, Receiver}; use crate::local_directory::{PermissionLevel, PermissionLevelId, Tag, TagId}; -use super::{AuthManager, AuthState, AuthorManager, TagManager, SUPER_TASK_CHANNEL_SIZE}; +use super::{ + AuthManager, AuthState, AuthorManager, ReleaseManager, TagManager, SUPER_TASK_CHANNEL_SIZE, +}; #[derive(Debug)] pub enum TaskNotification { @@ -17,6 +19,7 @@ pub struct SuperTaskManager { pub tags: TagManager, pub author: AuthorManager, pub auth: AuthManager, + pub release: ReleaseManager, } impl Default for SuperTaskManager { @@ -27,6 +30,7 @@ impl Default for SuperTaskManager { tags: TagManager::new(event_tx.clone()), author: AuthorManager::new(event_tx.clone()), auth: AuthManager::new(event_tx.clone()), + release: ReleaseManager::new(event_tx.clone()), events, } }