diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-09-01 19:12:29 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-09-01 19:12:29 +0800 |
| commit | 76a2350a9cf4f79c1f03bd9abffb8daaf47e834d (patch) | |
| tree | 08f869e59e933a9f77615accbe431a948af77ec0 /src | |
| parent | e4a1fbbd596b5466b266a077cddd104933b4fbcf (diff) | |
connector: manager to manage thread to poll/sync from connector
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/connector.rs | 2 | ||||
| -rw-r--r-- | src/client/connector/connectors.rs | 2 | ||||
| -rw-r--r-- | src/client/connector/connectors/httpconnector.rs | 2 | ||||
| -rw-r--r-- | src/client/connector/manager.rs | 12 | ||||
| -rw-r--r-- | src/client/main.rs | 11 |
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(); } |
