[][src]Struct ipfs_bitswap::Bitswap

pub struct Bitswap {
    pub connected_peers: HashMap<PeerId, Ledger>,
    pub queued_blocks: UnboundedSender<(PeerId, Block)>,
    pub stats: HashMap<PeerId, Arc<Stats>>,
    // some fields omitted
}

Network behaviour that handles sending and receiving IPFS blocks.

Fields

connected_peers: HashMap<PeerId, Ledger>

Ledger

queued_blocks: UnboundedSender<(PeerId, Block)>

Blocks queued to be sent

stats: HashMap<PeerId, Arc<Stats>>

Statistics related to peers.

Implementations

impl Bitswap[src]

pub fn local_wantlist(&self) -> Vec<(Cid, Priority)>[src]

Return the wantlist of the local node

pub fn peer_wantlist(&self, peer: &PeerId) -> Option<Vec<(Cid, Priority)>>[src]

Return the wantlist of a peer, if known

pub fn stats(&self) -> Stats[src]

pub fn peers(&self) -> Vec<PeerId>[src]

pub fn connect(&mut self, peer_id: PeerId)[src]

Connect to peer.

Called from Kademlia behaviour.

pub fn send_block(&mut self, peer_id: PeerId, block: Block)[src]

Sends a block to the peer.

Called from a Strategy.

pub fn want_block(&mut self, cid: Cid, priority: Priority)[src]

Queues the wanted block for all peers.

A user request

pub fn cancel_block(&mut self, cid: &Cid)[src]

Removes the block from our want list and updates all peers.

Can be either a user request or be called when the block was received.

Trait Implementations

impl Default for Bitswap[src]

impl NetworkBehaviour for Bitswap[src]

type ProtocolsHandler = OneShotHandler<BitswapConfig, Message, MessageWrapper>

Handler for all the protocols the network behaviour supports.

type OutEvent = BitswapEvent

Event generated by the NetworkBehaviour and that the swarm will report back.

Auto Trait Implementations

impl !RefUnwindSafe for Bitswap

impl Send for Bitswap

impl Sync for Bitswap

impl Unpin for Bitswap

impl !UnwindSafe for Bitswap

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,