godocs: clarify config params of MessageCache.

This commit is contained in:
Raúl Kripalani 2019-10-06 19:57:14 +09:00
parent 55553ac009
commit e897918f4b
1 changed files with 19 additions and 0 deletions

View File

@ -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),