internal

package
v0.0.0-...-2a7ec10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type TopicRegistrar

type TopicRegistrar map[string]*TopicRegistration

TopicRegistrar is a map of <pubsubname>-<topic> to `TopicRegistration` and acts as a lookup as the application is building up subscriptions with potentially multiple routes per topic.

func (TopicRegistrar) AddSubscription

func (m TopicRegistrar) AddSubscription(sub *common.Subscription, fn common.TopicEventHandler) error

type TopicRegistration

type TopicRegistration struct {
	Subscription   *TopicSubscription
	DefaultHandler common.TopicEventHandler
	RouteHandlers  map[string]common.TopicEventHandler
}

TopicRegistration encapsulates the subscription and handlers.

type TopicRoutes

type TopicRoutes struct {
	Rules   []TopicRule `json:"rules,omitempty"`
	Default string      `json:"default,omitempty"`
	// contains filtered or unexported fields
}

TopicRoutes encapsulates the default route and multiple routing rules.

type TopicRule

type TopicRule struct {
	// Match is the CEL expression to match on the CloudEvent envelope.
	Match string `json:"match"`
	// Path is the HTTP path to post the event to (passed as Path in gRPC).
	Path string `json:"path"`
	// contains filtered or unexported fields
}

TopicRule represents a single routing rule.

type TopicSubscription

type TopicSubscription struct {
	// PubsubName is name of the pub/sub this message came from.
	PubsubName string `json:"pubsubname"`
	// Topic is the name of the topic.
	Topic string `json:"topic"`
	// Route is the route of the handler where HTTP topic events should be published (passed as Path in gRPC).
	Route string `json:"route,omitempty"`
	// Routes specify multiple routes where topic events should be sent.
	Routes *TopicRoutes `json:"routes,omitempty"`
	// Metadata is the subscription metadata.
	Metadata map[string]string `json:"metadata,omitempty"`
}

TopicSubscription internally represents single topic subscription.

func NewTopicSubscription

func NewTopicSubscription(pubsubName, topic string) *TopicSubscription

NewTopicSubscription creates a new `TopicSubscription`.

func (*TopicSubscription) AddRoutingRule

func (s *TopicSubscription) AddRoutingRule(path, match string, priority int) error

AddRoutingRule adds a routing rule. An error is returned if a there id a duplicate priority > 1.

func (*TopicSubscription) SetDefaultRoute

func (s *TopicSubscription) SetDefaultRoute(path string) error

SetDefaultRoute sets the default route if not already set. An error is returned if it is already set.

func (*TopicSubscription) SetMetadata

func (s *TopicSubscription) SetMetadata(metadata map[string]string) error

SetMetadata sets the metadata for the subscription if not already set. An error is returned if it is already set.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL