Skip to content

Commit

Permalink
coreapi: swarm interface
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>


This commit was moved from ipfs/interface-go-ipfs-core@bc2ae0a
  • Loading branch information
magik6k committed Sep 26, 2018
1 parent 3bff21e commit 398a8ff
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions coreiface/swarm.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package iface

import (
"time"

"context"
ma "gx/ipfs/QmWWQ2Txc2c6tqjsBpzg5Ar652cHPGNsQQp2SejkNmkUMb/go-multiaddr"
peer "gx/ipfs/QmZoWKhxUmZ2seW4BzX6fJkNR8hh9PsGModr7q171yq2SS/go-libp2p-peer"
)

// PeerInfo contains information about a peer
type PeerInfo interface {
// ID returns PeerID
ID() peer.ID

// Address returns the multiaddress via which we are connected with the peer
Address() ma.Multiaddr

// Latency returns last known round trip time to the peer
Latency() time.Duration

// Streams returns list of streams established with the peer
// TODO: should this return multicodecs?
Streams() []string
}

// SwarmAPI specifies the interface to libp2p swarm
type SwarmAPI interface {
// Connect to a given address
Connect(context.Context, ma.Multiaddr) error

// Disconnect from a given address
Disconnect(context.Context, ma.Multiaddr) error

// Peers returns the list of peers we are connected to
Peers(context.Context) ([]PeerInfo, error)
}

0 comments on commit 398a8ff

Please sign in to comment.