From 463468863fd43b74085c09a37b3d9040b13858aa Mon Sep 17 00:00:00 2001 From: husy394 <421699196@qq.com> Date: Sun, 10 Oct 2021 04:46:44 +0800 Subject: [PATCH] add plugin manger code for process1 --- src/process1/src/plugin/manager.rs | 74 ++++++++++++++++++++++++++++++ src/process1/src/plugin/mod.rs | 1 + 2 files changed, 75 insertions(+) create mode 100644 src/process1/src/plugin/manager.rs create mode 100644 src/process1/src/plugin/mod.rs diff --git a/src/process1/src/plugin/manager.rs b/src/process1/src/plugin/manager.rs new file mode 100644 index 00000000..824ee2ff --- /dev/null +++ b/src/process1/src/plugin/manager.rs @@ -0,0 +1,74 @@ +struct Manager { + id:String, + name:String, + desc:String, + configdir:String, + m_obj_list:Vec , //manage obj list +} + +trait MangerMethod { + fn init(self); + + fn load(&mut self); + + fn dispatch(&mut self) -> Option; + + fn relaod(&mut self) -> Option; + + fn destroy(&mut self); + + // reserved for sd event + fn event_dispatch(&mut self) -> Option; +} + +struct unit{ + +} +struct UnitManager { + unitManager: Manager +} + +impl MangerMethod for UnitManager { + fn init(self){ + let id = self.unitManager.id; + self.unitManager.configdir; + } + + fn load(&mut self){ + self.unitManager.m_obj_list.push(unit{}); + } + + fn dispatch(&mut self) -> Option { + None + } + + fn relaod(&mut self) -> Option{ + None + } + + fn destroy(&mut self){ + + } + + // reserved for sd event + fn event_dispatch(&mut self) -> Option{ + None + } + + +} + +pub fn load_Manager(){ + //**此处应该支持扩展多种Manager */ + let manager:Manager = Manager{ + id: todo!(), + name: todo!(), + desc: todo!(), + configdir: todo!(), + m_obj_list: todo!(), + }; + let um = UnitManager{unitManager:manager}; + um.init(); + um.load(); + um.dispatch(); +} diff --git a/src/process1/src/plugin/mod.rs b/src/process1/src/plugin/mod.rs new file mode 100644 index 00000000..ff8de9eb --- /dev/null +++ b/src/process1/src/plugin/mod.rs @@ -0,0 +1 @@ +pub mod manager; -- Gitee