open-consul/agent/consul/stream/noop.go
Matt Keeler 2a4ca71d3f
Move to using a shared EventPublisher (#12673)
Previously we had 1 EventPublisher per state.Store. When a state store was closed/abandoned such as during a consul snapshot restore, this had the behavior of force closing subscriptions for that topic and evicting event snapshots from the cache.

The intention of this commit is to keep all that behavior. To that end, the shared EventPublisher now supports the ability to refresh a topic. That will perform the force close + eviction. The FSM upon abandoning the previous state.Store will call RefreshTopic for all the topics with events generated by the state.Store.
2022-04-12 09:47:42 -04:00

21 lines
453 B
Go

package stream
import (
"context"
"fmt"
)
type NoOpEventPublisher struct{}
func (NoOpEventPublisher) Publish([]Event) {}
func (NoOpEventPublisher) RegisterHandler(Topic, SnapshotFunc) error {
return fmt.Errorf("stream event publisher is disabled")
}
func (NoOpEventPublisher) Run(context.Context) {}
func (NoOpEventPublisher) Subscribe(*SubscribeRequest) (*Subscription, error) {
return nil, fmt.Errorf("stream event publisher is disabled")
}