Refactored clock.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s

This commit is contained in:
2026-02-04 08:49:03 -05:00
parent 0dbf75d0c6
commit 57ee7dd6ae
3 changed files with 35 additions and 217 deletions

View File

@@ -1,11 +1,11 @@
use crate::{
message::{
action::MsgAction,
action::{Action, MsgAction},
wrapper::{Message, Records},
},
name::{Name, NameType, Names},
queue::{
data_director::{RegMsg, Register},
data_director::{Include, Path, RegMsg, Register},
router::Queue,
},
};
@@ -24,11 +24,27 @@ impl Clock {
Self { queue: queue }
}
fn get_name() -> Name {
Name::english("clock")
}
fn gen_message() -> Message {
Message::new(Clock::get_name(), MsgAction::OnUpdate(Records::new(Names::new())))
}
pub fn get_path() -> Path {
Path::new(
Include::All,
Include::Just(Clock::get_name().into()),
Include::Just(Action::OnUpdate),
)
}
pub fn start(mut queue: Queue) {
let clock = Clock::new(queue.clone());
let (tx, rx) = channel();
let id = queue.add_sender(tx);
let reg_msg = Register::new(id, RegMsg::AddDocName([Name::english("clock")].to_vec()));
let reg_msg = Register::new(id, RegMsg::AddDocName([Clock::get_name()].to_vec()));
let msg = Message::new(NameType::None, reg_msg.clone());
queue.send(msg);
rx.recv().unwrap();
@@ -39,15 +55,21 @@ impl Clock {
fn listen(&self) {
loop {
self.queue.send(Message::new(
Name::english("clock"),
MsgAction::OnUpdate(Records::new(Names::new())),
));
self.queue.send(Clock::gen_message());
sleep(Duration::from_secs(1));
}
}
}
#[cfg(test)]
pub mod clock_test_support {
use super::*;
pub fn gen_clock_message() -> Message {
Clock::gen_message()
}
}
#[cfg(test)]
mod clocks {
use super::*;
@@ -76,7 +98,7 @@ mod clocks {
let end = Utc::now();
assert!((end - start) > TimeDelta::seconds(1));
assert!((end - start) < TimeDelta::seconds(2));
let reg_request = Register::new(id, RegMsg::GetNameID(Name::english("clock")));
let reg_request = Register::new(id, RegMsg::GetNameID(Clock::get_name()));
queue.send(Message::new(NameType::None, reg_request));
rx.recv_timeout(TIMEOUT).unwrap();
for msg in holder.iter() {