Merge pull request #205 from libp2p/fix/mcache-docs

godocs: clarify config params of MessageCache.
This commit is contained in:
vyzo 2019-10-06 22:17:11 +03:00 committed by GitHub
commit d72666d4eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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),