godocs: clarify config params of MessageCache.
This commit is contained in:
parent
55553ac009
commit
e897918f4b
19
mcache.go
19
mcache.go
|
@ -1,10 +1,29 @@
|
||||||
package pubsub
|
package pubsub
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
pb "github.com/libp2p/go-libp2p-pubsub/pb"
|
pb "github.com/libp2p/go-libp2p-pubsub/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// NewMessageCache creates a sliding window cache that remembers messages for as
|
||||||
|
// long as `history` slots.
|
||||||
|
//
|
||||||
|
// When queried for messages to advertise, the cache only returns messages in
|
||||||
|
// the last `gossip` slots.
|
||||||
|
//
|
||||||
|
// The `gossip` parameter must be smaller or equal to `history`, or this
|
||||||
|
// function will panic.
|
||||||
|
//
|
||||||
|
// The slack between `gossip` and `history` accounts for the reaction time
|
||||||
|
// between when a message is advertised via IHAVE gossip, and the peer pulls it
|
||||||
|
// via an IWANT command.
|
||||||
func NewMessageCache(gossip, history int) *MessageCache {
|
func NewMessageCache(gossip, history int) *MessageCache {
|
||||||
|
if gossip > history {
|
||||||
|
err := fmt.Errorf("invalid parameters for message cache; gossip slots (%d) cannot be larger than history slots (%d)",
|
||||||
|
gossip, history)
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
return &MessageCache{
|
return &MessageCache{
|
||||||
msgs: make(map[string]*pb.Message),
|
msgs: make(map[string]*pb.Message),
|
||||||
history: make([][]CacheEntry, history),
|
history: make([][]CacheEntry, history),
|
||||||
|
|
Loading…
Reference in New Issue