about summary refs log tree commit diff stats
path: root/src/server/context.rs
diff options
context:
space:
mode:
authoryuzu <yuzu@b9215c17-b818-4693-b096-d1e41a411fef>2025-07-12 22:17:26 +0000
committeryuzu <yuzu@b9215c17-b818-4693-b096-d1e41a411fef>2025-07-12 22:17:26 +0000
commite33f9a59f875edf1240ca80c1014235296ff3cbf (patch)
tree5777c00bafad650d6be84f42f51ba4f873d92c53 /src/server/context.rs
parent78608add1c69a877b76a05147f6c26b7abe66669 (diff)
downloadsalaryman-e33f9a59f875edf1240ca80c1014235296ff3cbf.tar.gz
salaryman-e33f9a59f875edf1240ca80c1014235296ff3cbf.tar.bz2
salaryman-e33f9a59f875edf1240ca80c1014235296ff3cbf.zip
add additional endpoints; change out mutexes for rwlocks
git-svn-id: svn+ssh://diminuette.aengel.lesbianunix.dev/salaryman/trunk@15 b9215c17-b818-4693-b096-d1e41a411fef
Diffstat (limited to 'src/server/context.rs')
-rw-r--r--src/server/context.rs47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/server/context.rs b/src/server/context.rs
new file mode 100644
index 0000000..132e2dc
--- /dev/null
+++ b/src/server/context.rs
@@ -0,0 +1,47 @@
+use super::Config;
+use salaryman::service::{Service, ServiceConf};
+use std::path::PathBuf;
+use std::sync::Arc;
+use tokio::sync::RwLock;
+
+pub struct SalarymanService {
+    pub config: ServiceConf,
+    pub service: Arc<RwLock<Service>>,
+}
+impl SalarymanService {
+    pub fn new() -> Self {
+        Self {
+            config: ServiceConf::new(),
+            service: Arc::new(RwLock::new(Service::new())),
+        }
+    }
+    pub fn from_parts(config: ServiceConf, service: Arc<RwLock<Service>>) -> Self {
+        Self { config, service }
+    }
+}
+
+pub struct SalarymanDContext {
+    pub services: RwLock<Vec<Arc<SalarymanService>>>,
+    pub save_file: PathBuf,
+    pub config: Arc<RwLock<Config>>,
+}
+impl SalarymanDContext {
+    pub fn new() -> Self {
+        Self {
+            services: RwLock::new(Vec::new()),
+            save_file: PathBuf::from(""),
+            config: Arc::new(RwLock::new(Config::new())),
+        }
+    }
+    pub fn from_parts(
+        services: RwLock<Vec<Arc<SalarymanService>>>,
+        save_file: PathBuf,
+        config: Arc<RwLock<Config>>,
+    ) -> Self {
+        Self {
+            services,
+            save_file,
+            config,
+        }
+    }
+}