package pubsub
import "github.com/docker/cli/components/engine/pkg/pubsub"
Index ¶
- type Publisher
- func NewPublisher(publishTimeout time.Duration, buffer int) *Publisher
- func (p *Publisher) Close()
- func (p *Publisher) Evict(sub chan interface{})
- func (p *Publisher) Len() int
- func (p *Publisher) Publish(v interface{})
- func (p *Publisher) Subscribe() chan interface{}
- func (p *Publisher) SubscribeTopic(topic topicFunc) chan interface{}
- func (p *Publisher) SubscribeTopicWithBuffer(topic topicFunc, buffer int) chan interface{}
Types ¶
type Publisher ¶
type Publisher struct {
// contains filtered or unexported fields
}
Publisher is basic pub/sub structure. Allows to send events and subscribe to them. Can be safely used from multiple goroutines.
func NewPublisher ¶
NewPublisher creates a new pub/sub publisher to broadcast messages. The duration is used as the send timeout as to not block the publisher publishing messages to other clients if one client is slow or unresponsive. The buffer is used when creating new channels for subscribers.
func (*Publisher) Close ¶
func (p *Publisher) Close()
Close closes the channels to all subscribers registered with the publisher.
func (*Publisher) Evict ¶
func (p *Publisher) Evict(sub chan interface{})
Evict removes the specified subscriber from receiving any more messages.
func (*Publisher) Len ¶
Len returns the number of subscribers for the publisher
func (*Publisher) Publish ¶
func (p *Publisher) Publish(v interface{})
Publish sends the data in v to all subscribers currently registered with the publisher.
func (*Publisher) Subscribe ¶
func (p *Publisher) Subscribe() chan interface{}
Subscribe adds a new subscriber to the publisher returning the channel.
func (*Publisher) SubscribeTopic ¶
func (p *Publisher) SubscribeTopic(topic topicFunc) chan interface{}
SubscribeTopic adds a new subscriber that filters messages sent by a topic.
func (*Publisher) SubscribeTopicWithBuffer ¶
SubscribeTopicWithBuffer adds a new subscriber that filters messages sent by a topic. The returned channel has a buffer of the specified size.
Source Files ¶
- Version
- v17.12.0-ce-rc3+incompatible
- Published
- Dec 14, 2017
- Platform
- linux/amd64
- Imports
- 2 packages
- Last checked
- 33 minutes ago –
Tools for package owners.