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
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
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 {
|
||||
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{
|
||||
msgs: make(map[string]*pb.Message),
|
||||
history: make([][]CacheEntry, history),
|
||||
|
|
Loading…
Reference in New Issue