mbus

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2024 License: Apache-2.0 Imports: 7 Imported by: 6

Documentation

Index

Constants

View Source
const (
	ResourceTypeTopic        = "topic"
	ResourceTypeSubscription = "subscription"
	ResourceTypeQueue        = "queue"
)

Variables

This section is empty.

Functions

func Register

func Register(vendor string, service Service)

Register register vendor service

func RegisterNotifier added in v1.11.0

func RegisterNotifier(vendor string, notifier Notifier)

RegisterNotifier register vendor notifier

Types

type Acknowledgement added in v1.11.0

type Acknowledgement struct {
	Error error
	// contains filtered or unexported fields
}

Acknowledgement represents message acknowledgement

func NewAcknowledgement added in v1.11.0

func NewAcknowledgement() *Acknowledgement

func (*Acknowledgement) Ack added in v1.11.0

func (c *Acknowledgement) Ack() error

func (*Acknowledgement) IsAck added in v1.11.0

func (c *Acknowledgement) IsAck() bool

func (*Acknowledgement) IsNack added in v1.11.0

func (c *Acknowledgement) IsNack() bool

func (*Acknowledgement) Nack added in v1.11.0

func (c *Acknowledgement) Nack() error

type Confirmation

type Confirmation struct {
	MessageID string
}

Confirmation represents message confirmation

func (*Confirmation) String added in v0.1.8

func (c *Confirmation) String() string

type EncodedResource added in v1.8.1

type EncodedResource string

EncodedResource represents encoded resource

func (EncodedResource) Decode added in v1.8.1

func (e EncodedResource) Decode() (*Resource, error)

type Message

type Message struct {
	ID         string
	Resource   *Resource
	TraceID    string
	Attributes map[string]interface{}
	Subject    string
	Data       interface{}
}

func (*Message) AddAttribute

func (m *Message) AddAttribute(name string, value interface{})

func (*Message) Payload

func (m *Message) Payload() ([]byte, error)

type Messenger added in v1.11.0

type Messenger interface {
	//OnMessage handles message
	OnMessage(ctx context.Context, message *Message, ack *Acknowledgement) error
}

Messenger represents message listener

type Notifier added in v1.11.0

type Notifier interface {
	Notify(ctx context.Context, messenger Messenger, options ...NotifierOption) error
}

Notifier represents message Notifier

func LookupNotifier added in v1.11.0

func LookupNotifier(vendor string) Notifier

LookupNotifier lookup notifier

type NotifierOption added in v1.11.0

type NotifierOption func(Notifier *NotifierOptions)

func WithMaxMessages added in v1.11.0

func WithMaxMessages(value int) NotifierOption

WithMaxMessages sets max messages to process

func WithResource added in v1.11.0

func WithResource(value *Resource) NotifierOption

WithResource sets resource

type NotifierOptions added in v1.11.0

type NotifierOptions struct {
	//MaxPending max messages to process
	MaxPending int
	Resource   *Resource
}

func NewNotifierOptions added in v1.11.0

func NewNotifierOptions(options ...NotifierOption) *NotifierOptions

type Resource

type Resource struct {
	ID          string        `yaml:"ID" json:",omitempty"`
	Name        string        `yaml:"Name"  json:",omitempty"`
	Region      string        `yaml:"Region"  json:",omitempty"`
	Vendor      string        `yaml:"Vendor"  json:",omitempty"`
	URL         string        `yaml:"URL"  json:",omitempty"`
	Credentials *scy.Resource `yaml:"Resource"  json:",omitempty"`
	Type        string        `description:"resource type: topic, subscription" yaml:"Type"  json:",omitempty"`
	Client      interface{}   `description:"client" yaml:"-"`
	sync.Mutex  `yaml:"-" json:"-"`
}

func (*Resource) Init

func (r *Resource) Init() error

type Service

type Service interface {
	Push(ctx context.Context, dest *Resource, message *Message) (*Confirmation, error)
}

func Lookup

func Lookup(vendor string) Service

Lookup lookup service

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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