summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-09-01 19:12:29 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-09-01 19:12:29 +0800
commit76a2350a9cf4f79c1f03bd9abffb8daaf47e834d (patch)
tree08f869e59e933a9f77615accbe431a948af77ec0
parente4a1fbbd596b5466b266a077cddd104933b4fbcf (diff)
connector: manager to manage thread to poll/sync from connector
-rw-r--r--src/client/connector.rs2
-rw-r--r--src/client/connector/connectors.rs2
-rw-r--r--src/client/connector/connectors/httpconnector.rs2
-rw-r--r--src/client/connector/manager.rs12
-rw-r--r--src/client/main.rs11
5 files changed, 23 insertions, 6 deletions
diff --git a/src/client/connector.rs b/src/client/connector.rs
index a846939..e49d08e 100644
--- a/src/client/connector.rs
+++ b/src/client/connector.rs
@@ -1,4 +1,4 @@
-mod connectors;
+pub(crate) mod connectors;
pub(crate) mod manager;
use std::{
diff --git a/src/client/connector/connectors.rs b/src/client/connector/connectors.rs
index 3810a4a..4c14ad9 100644
--- a/src/client/connector/connectors.rs
+++ b/src/client/connector/connectors.rs
@@ -1,4 +1,4 @@
-mod httpconnector;
+pub(crate) mod httpconnector;
pub(crate) enum Connectors<'a> {
Http(httpconnector::HTTPConnector<'a>),
diff --git a/src/client/connector/connectors/httpconnector.rs b/src/client/connector/connectors/httpconnector.rs
index 97f79dd..2bdb36a 100644
--- a/src/client/connector/connectors/httpconnector.rs
+++ b/src/client/connector/connectors/httpconnector.rs
@@ -9,7 +9,7 @@ pub(crate) struct HTTPConnector<'a> {
}
impl<'a> HTTPConnector<'a> {
- fn new(url: &'a str) -> Result<Self, AddrParseError> {
+ pub fn new(url: &'a str) -> Result<Self, AddrParseError> {
Ok(Self {
prev: String::new(),
url,
diff --git a/src/client/connector/manager.rs b/src/client/connector/manager.rs
index 9ca8a24..7227303 100644
--- a/src/client/connector/manager.rs
+++ b/src/client/connector/manager.rs
@@ -3,10 +3,20 @@ use std::thread;
pub(crate) struct ConnectorManager<'a> {
connector: connectors::Connectors<'a>,
+ thread: Option<thread::JoinHandle<!>>,
}
impl<'a> ConnectorManager<'a> {
pub(crate) fn new(connector: connectors::Connectors<'a>) -> Self {
- Self { connector }
+ Self {
+ connector,
+ thread: None,
+ }
+ }
+
+ pub(crate) fn start(&mut self) {
+ self.thread = Some(thread::spawn(|| loop {
+ println!("Hello, world!");
+ }))
}
}
diff --git a/src/client/main.rs b/src/client/main.rs
index f514a74..93eb511 100644
--- a/src/client/main.rs
+++ b/src/client/main.rs
@@ -1,6 +1,13 @@
-#![feature(associated_type_defaults)]
+#![feature(associated_type_defaults, never_type)]
+
+use std::thread;
+
+use crate::connector::connectors::{httpconnector::HTTPConnector, Connectors};
mod connector;
fn main() {
- // connector::manager::ConnectorManager::new();
+ connector::manager::ConnectorManager::new(Connectors::Http(
+ HTTPConnector::new("https://google.com").unwrap(),
+ ))
+ .start();
}