pub struct SharedState {
pub peers: Arc<Mutex<HashMap<String, Peer>>>,
pub known_peers: KnownPeers,
pub shares: Shares,
pub wishlist: WishList,
pub event_broadcaster: Sender<UiEvent>,
pub download_dir: PathBuf,
pub name: String,
pub announce_address: AnnounceAddress,
pub os_home_dir: Option<String>,
/* private fields */
}Expand description
Shared state used by both the peer connections and user interface server
Fields§
§peers: Arc<Mutex<HashMap<String, Peer>>>A map of peer names to active peer connections
known_peers: KnownPeersA list of known peer names
The index of shared files
wishlist: WishListMaintains lists of requested/downloaded files
event_broadcaster: Sender<UiEvent>Channel for sending events to the UI
download_dir: PathBufDownload directory
name: StringA name derived from our public key
announce_address: AnnounceAddressOur own connection details
os_home_dir: Option<String>Our OS home directory path
Implementations§
pub async fn new( db: Db, share_dirs: Vec<String>, download_dir: PathBuf, name: String, peer_announce_tx: Sender<PeerConnect>, peers: Arc<Mutex<HashMap<String, Peer>>>, announce_address: AnnounceAddress, graceful_shutdown_tx: Sender<()>, known_peers: KnownPeers, ) -> Result<Self>
Sourcepub async fn send_event(&self, event: UiEvent)
pub async fn send_event(&self, event: UiEvent)
Send an event to the UI
Sourcepub async fn request(
&self,
request: Request,
name: &str,
) -> Result<RecvStream, RequestError>
pub async fn request( &self, request: Request, name: &str, ) -> Result<RecvStream, RequestError>
Open a request stream and write a request to the peer with the given name
Sourcepub async fn request_peer(
request: Request,
peer: &Peer,
) -> Result<RecvStream, RequestError>
pub async fn request_peer( request: Request, peer: &Peer, ) -> Result<RecvStream, RequestError>
Static method to open a request stream and write a request to the given peer
pub fn get_ui_announce_address(&self) -> String
pub async fn connect_to_peer( &self, announce_address: AnnounceAddress, ) -> Result<(), UiServerErrorWrapper>
pub async fn download( &self, peer_path: PeerPath, ) -> Result<u32, UiServerErrorWrapper>
Trait Implementations§
Source§fn clone(&self) -> SharedState
fn clone(&self) -> SharedState
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more