chore: refactor module structure
This commit is contained in:
@@ -17,6 +17,7 @@ use std::{
|
|||||||
time::{Duration, Instant},
|
time::{Duration, Instant},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
const MAX_THREADS: usize = 100;
|
const MAX_THREADS: usize = 100;
|
||||||
pub enum ClientOperation {
|
pub enum ClientOperation {
|
||||||
ConnectToPeer(Peer),
|
ConnectToPeer(Peer),
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
use crate::message::{handlers::Handlers, Message};
|
use crate::message::{handlers::Handlers, Message};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
|
|
||||||
/// Add `<Op>` to make it generic over any operation type.
|
/// Add `<Op>` to make it generic over any operation type.
|
||||||
pub struct MessageDispatcher<Op> {
|
pub struct MessageDispatcher<Op> {
|
||||||
sender: Sender<Op>,
|
sender: Sender<Op>,
|
||||||
|
|||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
// Core modules
|
||||||
|
pub mod client;
|
||||||
|
pub mod dispatcher;
|
||||||
|
pub mod message;
|
||||||
|
pub mod peer;
|
||||||
|
pub mod server;
|
||||||
|
pub mod types;
|
||||||
|
#[macro_use]
|
||||||
|
pub mod utils;
|
||||||
|
// Prelude module for commonly used items
|
||||||
|
pub mod prelude {
|
||||||
|
pub use crate::types::{
|
||||||
|
DownloadResult, DownloadStatus, File, FileSearchResult, Transfer,
|
||||||
|
};
|
||||||
|
pub use crate::{debug, error, info, trace, warn};
|
||||||
|
pub use crate::{Client, PeerAddress};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Re-export commonly used types
|
||||||
|
pub use client::Client;
|
||||||
|
pub use server::PeerAddress;
|
||||||
|
pub use types::{
|
||||||
|
DownloadResult, DownloadStatus, File, FileSearchResult, Transfer,
|
||||||
|
};
|
||||||
|
|
||||||
+3
-17
@@ -1,24 +1,10 @@
|
|||||||
#[macro_use]
|
fn main() {
|
||||||
mod utils;
|
use soulseek_download::{Client, PeerAddress};
|
||||||
mod client;
|
|
||||||
mod dispatcher;
|
|
||||||
mod message;
|
|
||||||
mod peer;
|
|
||||||
mod server;
|
|
||||||
mod types;
|
|
||||||
|
|
||||||
use client::Client;
|
|
||||||
use server::PeerAddress;
|
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
// PeerAddress::new(String::from("server.slsknet.org"), 2416),
|
|
||||||
fn main() {
|
|
||||||
let mut client = Client::new(
|
let mut client = Client::new(
|
||||||
// ServerAddress::new(String::from("localhost"), 2416),
|
|
||||||
// PeerAddress::new(String::from("127.0.0.1"), 2242),
|
|
||||||
PeerAddress::new(String::from("server.slsknet.org"), 2242),
|
PeerAddress::new(String::from("server.slsknet.org"), 2242),
|
||||||
String::from("insane_in_the_brain3"),
|
String::from("insane_in_the_brain3"),
|
||||||
// String::from("invalid"),
|
|
||||||
String::from("13375137"),
|
String::from("13375137"),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -34,7 +20,7 @@ fn main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
error!("Failed to login: {}", e);
|
eprintln!("Failed to login: {}", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-3
@@ -1,10 +1,13 @@
|
|||||||
|
pub use crate::{debug, error, info, trace, warn};
|
||||||
|
|
||||||
pub mod handlers;
|
pub mod handlers;
|
||||||
pub mod message_reader;
|
mod message_reader;
|
||||||
pub mod peer;
|
pub mod peer;
|
||||||
pub mod server;
|
pub mod server;
|
||||||
|
|
||||||
pub use handlers::*;
|
// Re-export commonly used items
|
||||||
pub use message_reader::*;
|
pub use handlers::{MessageHandler, Handlers};
|
||||||
|
pub use message_reader::MessageReader;
|
||||||
|
|
||||||
use std::str;
|
use std::str;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
pub mod file_search_response;
|
mod file_search_response;
|
||||||
pub mod get_share_file_list;
|
mod get_share_file_list;
|
||||||
pub mod transfer_request;
|
mod transfer_request;
|
||||||
pub mod upload_failed;
|
mod upload_failed;
|
||||||
|
|
||||||
pub use self::file_search_response::*;
|
// Re-export handlers
|
||||||
|
pub use file_search_response::FileSearchResponse;
|
||||||
|
pub use get_share_file_list::GetShareFileList;
|
||||||
|
pub use transfer_request::TransferRequest;
|
||||||
|
pub use upload_failed::UploadFailedHandler;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use crate::{
|
use crate::{
|
||||||
message::{Message, MessageHandler},
|
message::{Message, MessageHandler},
|
||||||
peer::PeerOperation,
|
peer::PeerOperation,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use crate::message::{Message, MessageHandler};
|
use crate::message::{Message, MessageHandler};
|
||||||
use crate::peer::{ConnectionType, Peer};
|
use crate::peer::{ConnectionType, Peer};
|
||||||
use crate::server::ServerOperation;
|
use crate::server::ServerOperation;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use crate::{
|
use crate::{
|
||||||
message::{Message, MessageHandler},
|
message::{Message, MessageHandler},
|
||||||
server::ServerOperation,
|
server::ServerOperation,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
use crate::{message::handlers::MessageHandler,
|
use crate::{message::handlers::MessageHandler,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
use crate::{message::Message, server::ServerOperation};
|
use crate::{message::Message, server::ServerOperation};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use crate::{message::Message, peer::ConnectionType, types::Transfer, utils::md5};
|
use crate::{message::Message, peer::ConnectionType, types::Transfer, utils::md5::md5};
|
||||||
|
|
||||||
pub struct MessageFactory;
|
pub struct MessageFactory;
|
||||||
impl MessageFactory {
|
impl MessageFactory {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ use crate::{
|
|||||||
message::{Message, MessageHandler},
|
message::{Message, MessageHandler},
|
||||||
server::{ServerOperation, UserMessage},
|
server::{ServerOperation, UserMessage},
|
||||||
};
|
};
|
||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
pub struct MessageUser;
|
pub struct MessageUser;
|
||||||
|
|||||||
+23
-16
@@ -1,18 +1,25 @@
|
|||||||
pub mod connect_to_peer;
|
mod connect_to_peer;
|
||||||
pub mod excluded_search_phrases;
|
mod excluded_search_phrases;
|
||||||
pub mod file_search;
|
mod file_search;
|
||||||
pub mod login;
|
mod login;
|
||||||
pub mod message_factory;
|
mod message_factory;
|
||||||
pub mod message_user;
|
mod message_user;
|
||||||
pub mod parent_min_speed;
|
mod parent_min_speed;
|
||||||
pub mod parent_speed_ratio;
|
mod parent_speed_ratio;
|
||||||
pub mod privileged_users;
|
mod privileged_users;
|
||||||
pub mod room_list;
|
mod room_list;
|
||||||
pub mod wish_list_interval;
|
mod wish_list_interval;
|
||||||
|
|
||||||
pub use self::{
|
// Re-export handlers
|
||||||
connect_to_peer::*, excluded_search_phrases::*, file_search::*, login::*, message_factory::*,
|
pub use connect_to_peer::ConnectToPeerHandler;
|
||||||
message_user::*, parent_min_speed::*, parent_speed_ratio::*, privileged_users::*, room_list::*,
|
pub use excluded_search_phrases::ExcludedSearchPhrasesHandler;
|
||||||
wish_list_interval::*,
|
pub use file_search::FileSearchHandler;
|
||||||
};
|
pub use login::LoginHandler;
|
||||||
|
pub use message_factory::MessageFactory;
|
||||||
|
pub use message_user::MessageUser;
|
||||||
|
pub use parent_min_speed::ParentMinSpeedHandler;
|
||||||
|
pub use parent_speed_ratio::ParentSpeedRatioHandler;
|
||||||
|
pub use privileged_users::PrivilegedUsersHandler;
|
||||||
|
pub use room_list::RoomListHandler;
|
||||||
|
pub use wish_list_interval::WishListIntervalHandler;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
use crate::dispatcher::MessageDispatcher;
|
use crate::dispatcher::MessageDispatcher;
|
||||||
use crate::message::peer::get_share_file_list::GetShareFileList;
|
use crate::message::peer::{GetShareFileList, TransferRequest, UploadFailedHandler};
|
||||||
use crate::message::peer::transfer_request::TransferRequest;
|
|
||||||
use crate::message::peer::upload_failed::UploadFailedHandler;
|
|
||||||
use crate::message::peer::FileSearchResponse;
|
use crate::message::peer::FileSearchResponse;
|
||||||
use crate::message::server::MessageFactory;
|
use crate::message::server::MessageFactory;
|
||||||
use crate::message::{Handlers, Message, MessageReader, MessageType};
|
use crate::message::{Handlers, Message, MessageReader, MessageType};
|
||||||
@@ -18,6 +16,8 @@ use std::net::TcpStream;
|
|||||||
use std::net::ToSocketAddrs;
|
use std::net::ToSocketAddrs;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub struct DefaultPeer {
|
pub struct DefaultPeer {
|
||||||
peer: Peer,
|
peer: Peer,
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ use std::{io, net::TcpListener};
|
|||||||
use crate::message::MessageReader;
|
use crate::message::MessageReader;
|
||||||
use crate::server::ServerOperation;
|
use crate::server::ServerOperation;
|
||||||
|
|
||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
|
|
||||||
pub struct Listen {}
|
pub struct Listen {}
|
||||||
|
|
||||||
impl Listen {
|
impl Listen {
|
||||||
|
|||||||
+5
-4
@@ -1,9 +1,10 @@
|
|||||||
pub mod default_peer;
|
mod default_peer;
|
||||||
pub use default_peer::*;
|
mod download_peer;
|
||||||
|
|
||||||
pub mod download_peer;
|
|
||||||
pub mod listen;
|
pub mod listen;
|
||||||
|
|
||||||
|
// Re-export commonly used items
|
||||||
|
pub use default_peer::{DefaultPeer, PeerOperation};
|
||||||
|
|
||||||
use crate::message::Message;
|
use crate::message::Message;
|
||||||
use core::fmt;
|
use core::fmt;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|||||||
+3
-1
@@ -14,7 +14,7 @@ use crate::message::server::WishListIntervalHandler;
|
|||||||
use crate::message::Handlers;
|
use crate::message::Handlers;
|
||||||
use crate::message::Message;
|
use crate::message::Message;
|
||||||
use crate::message::MessageReader;
|
use crate::message::MessageReader;
|
||||||
use crate::peer::listen::Listen;
|
use crate::peer::{listen::Listen};
|
||||||
use crate::peer::ConnectionType;
|
use crate::peer::ConnectionType;
|
||||||
use crate::peer::Peer;
|
use crate::peer::Peer;
|
||||||
|
|
||||||
@@ -26,6 +26,8 @@ use std::sync::{Arc, Barrier, Mutex};
|
|||||||
use std::thread::{self};
|
use std::thread::{self};
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
||||||
|
use crate::{debug, error, info, trace, warn};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct PeerAddress {
|
pub struct PeerAddress {
|
||||||
host: String,
|
host: String,
|
||||||
|
|||||||
+2
-1
@@ -4,4 +4,5 @@ pub mod md5;
|
|||||||
pub mod thread_pool;
|
pub mod thread_pool;
|
||||||
pub mod zlib;
|
pub mod zlib;
|
||||||
|
|
||||||
pub use md5::*;
|
// Re-export commonly used items
|
||||||
|
pub use md5::md5;
|
||||||
|
|||||||
Reference in New Issue
Block a user