-
Notifications
You must be signed in to change notification settings - Fork 26
/
driver_discovery.go
47 lines (37 loc) · 1.31 KB
/
driver_discovery.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package tinder
import (
"context"
"time"
"github.com/libp2p/go-libp2p/core/discovery"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/routing"
disc_routing "github.com/libp2p/go-libp2p/p2p/discovery/routing"
)
type DiscoveryDriver struct {
name string
discovery.Discovery
}
func NewRoutingDiscoveryDriver(name string, routing routing.Routing) IDriver {
disc := disc_routing.NewRoutingDiscovery(routing)
return NewDiscoveryDriver(name, disc)
}
func NewDiscoveryDriver(name string, disc discovery.Discovery) IDriver {
return &DiscoveryDriver{name, disc}
}
// discovery advertise
func (d *DiscoveryDriver) Advertise(ctx context.Context, topic string, opts ...discovery.Option) (time.Duration, error) {
return d.Discovery.Advertise(ctx, topic, opts...)
}
// discovery find peers
func (d *DiscoveryDriver) FindPeers(ctx context.Context, topic string, opts ...discovery.Option) (<-chan peer.AddrInfo, error) {
return d.Discovery.FindPeers(ctx, topic, opts...)
}
func (d *DiscoveryDriver) Subscribe(_ context.Context, _ string, _ ...discovery.Option) (<-chan peer.AddrInfo, error) {
return nil, ErrNotSupported
}
func (d *DiscoveryDriver) Unregister(_ context.Context, _ string, _ ...discovery.Option) error {
return ErrNotSupported
}
func (d *DiscoveryDriver) Name() string {
return d.name
}