package eventbus

import (
	"database/sql"
	"time"

	"github.com/prometheus/client_golang/prometheus"
	"github.com/tidbcloud/tiinf/transport/tieventbus"
)

// DiscardEventBus implements tieventbus, but discard all events.
type DiscardEventBus struct{}

func (b *DiscardEventBus) RegisterHandler(config tieventbus.HandlerConfig)              {}
func (b *DiscardEventBus) Publish(event *tieventbus.Event) error                        { return nil }
func (b *DiscardEventBus) PublishAsync(event *tieventbus.Event) *tieventbus.AsyncResult { return nil }
func (b *DiscardEventBus) PublishWithDBTx(tx *sql.Tx, event *tieventbus.Event) error    { return nil }
func (b *DiscardEventBus) Run() error                                                   { return nil }
func (b *DiscardEventBus) RunUtilClosed() error                                         { return nil }
func (b *DiscardEventBus) Running() chan struct{}                                       { return nil }
func (b *DiscardEventBus) FixDLQ(timeout time.Duration) error                           { return nil }
func (b *DiscardEventBus) EnableMetrics(prometheusRegistry prometheus.Registerer, namespace string, subsystem string) {
}
func (b *DiscardEventBus) Close() {}
