From d1e57513bb8522bb42cc014f4db01344ff736095 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 12 Oct 2022 00:23:27 +0800 Subject: [PATCH] 1 --- server/notifyserver/src/metamgr.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/server/notifyserver/src/metamgr.rs b/server/notifyserver/src/metamgr.rs index ea0a53f..cc70d06 100644 --- a/server/notifyserver/src/metamgr.rs +++ b/server/notifyserver/src/metamgr.rs @@ -1,3 +1,4 @@ +use std::rc::Rc; use std::any::Any; use std::collections::HashMap; @@ -16,8 +17,8 @@ pub struct MetaMgr { impl MetaMgr { - pub fn register_meta_class(&mut self) { - let a = MetaClass{ + pub fn register_meta_class(&mut self, file_name: String, idx: i32, prim_key: String, sec_key: String) { + let cls = MetaClass{ file_name: String::from("hello"), idx: 1, prim_key: String::from("key"), @@ -25,6 +26,23 @@ impl MetaMgr { id_hash: HashMap::new(), name_hash: HashMap::new() }; + self.meta_classes.push(Box::new(cls)); + } + + pub fn get_byid(&mut self, idx: i32, id: i64) -> Option<&Rc> { + if (idx as usize) < self.meta_classes.len() { + match self.meta_classes[idx as usize].id_hash.get(&id) { + Some(v) => { + if let Some(item) = v.downcast_ref::>() { + return Some(item) + } + } + None => { + + } + } + } + return None; } }