generated

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package "generated" provides primitives to interact with the AsyncAPI specification.

Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.

Package "generated" provides primitives to interact with the AsyncAPI specification.

Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.

Package "generated" provides primitives to interact with the AsyncAPI specification.

Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.

Package "generated" provides primitives to interact with the AsyncAPI specification.

Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.

Index

Constants

View Source
const (
	// CorrelationIDField is the name of the field that will contain the correlation ID
	CorrelationIDField = "correlation_id"
)

Variables

View Source
var (
	// Generic error for AsyncAPI generated code
	ErrAsyncAPI = errors.New("error when using AsyncAPI")

	// ErrContextCanceled is given when a given context is canceled
	ErrContextCanceled = fmt.Errorf("%w: context canceled", ErrAsyncAPI)

	// ErrNilBrokerController is raised when a nil broker controller is user
	ErrNilBrokerController = fmt.Errorf("%w: nil broker controller has been used", ErrAsyncAPI)

	// ErrNilAppSubscriber is raised when a nil app subscriber is user
	ErrNilAppSubscriber = fmt.Errorf("%w: nil app subscriber has been used", ErrAsyncAPI)

	// ErrNilClientSubscriber is raised when a nil client subscriber is user
	ErrNilClientSubscriber = fmt.Errorf("%w: nil client subscriber has been used", ErrAsyncAPI)

	// ErrAlreadySubscribedChannel is raised when a subscription is done twice
	// or more without unsubscribing
	ErrAlreadySubscribedChannel = fmt.Errorf("%w: the channel has already been subscribed", ErrAsyncAPI)

	// ErrSubscriptionCanceled is raised when expecting something and the subscription has been canceled before it happens
	ErrSubscriptionCanceled = fmt.Errorf("%w: the subscription has been canceled", ErrAsyncAPI)
)

Functions

This section is empty.

Types

type AppController

type AppController struct {
	// contains filtered or unexported fields
}

AppController is the structure that provides publishing capabilities to the developer and and connect the broker with the App

func NewAppController

func NewAppController(bs BrokerController) (*AppController, error)

NewAppController links the App to the broker

func (*AppController) Close

func (c *AppController) Close()

Close will clean up any existing resources on the controller

func (AppController) LogError added in v0.15.0

func (c AppController) LogError(ctx log.Context, msg string)

LogError logs error if the logger has been set

func (AppController) LogInfo added in v0.15.0

func (c AppController) LogInfo(ctx log.Context, msg string)

LogInfo logs information if the logger has been set

func (*AppController) SetLogger added in v0.15.0

func (c *AppController) SetLogger(logger log.Logger)

SetLogger attaches a logger that will log operations on controller

func (*AppController) SubscribeAll

func (c *AppController) SubscribeAll(as AppSubscriber) error

SubscribeAll will subscribe to channels without parameters on which the app is expecting messages. For channels with parameters, they should be subscribed independently.

func (*AppController) SubscribeHello

func (c *AppController) SubscribeHello(fn func(msg HelloMessage, done bool)) error

SubscribeHello will subscribe to new messages from 'hello' channel.

Callback function 'fn' will be called each time a new message is received. The 'done' argument indicates when the subscription is canceled and can be used to clean up resources.

func (*AppController) UnsubscribeAll

func (c *AppController) UnsubscribeAll()

UnsubscribeAll will unsubscribe all remaining subscribed channels

func (*AppController) UnsubscribeHello

func (c *AppController) UnsubscribeHello()

UnsubscribeHello will unsubscribe messages from 'hello' channel

type AppSubscriber

type AppSubscriber interface {
	// Hello
	Hello(msg HelloMessage, done bool)
}

AppSubscriber represents all handlers that are expecting messages for App

type BrokerController

type BrokerController interface {
	// SetLogger set a logger that will log operations on broker controller
	SetLogger(logger log.Logger)

	// Publish a message to the broker
	Publish(channel string, mw UniversalMessage) error

	// Subscribe to messages from the broker
	Subscribe(channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)

	// SetQueueName sets the name of the queue that will be used by the broker
	SetQueueName(name string)
}

BrokerController represents the functions that should be implemented to connect the broker to the application or the client

type Error added in v0.3.0

type Error struct {
	Channel string
	Err     error
}

func (*Error) Error added in v0.3.0

func (e *Error) Error() string

type HelloMessage

type HelloMessage struct {
	// Payload will be inserted in the message payload
	Payload string
}

HelloMessage is the message expected for 'Hello' channel

func NewHelloMessage

func NewHelloMessage() HelloMessage

type MessageWithCorrelationID added in v0.4.0

type MessageWithCorrelationID interface {
	CorrelationID() string
}

type NATSController

type NATSController struct {
	// contains filtered or unexported fields
}

NATSController is the NATS implementation for asyncapi-codegen

func NewNATSController

func NewNATSController(connection *nats.Conn) *NATSController

NewNATSController creates a new NATSController that fulfill the BrokerLinker interface

func (*NATSController) Publish

func (c *NATSController) Publish(channel string, um UniversalMessage) error

Publish a message to the broker

func (*NATSController) SetLogger added in v0.15.0

func (c *NATSController) SetLogger(logger log.Logger)

SetLogger set a custom logger that will log operations on broker controller

func (*NATSController) SetQueueName added in v0.14.0

func (c *NATSController) SetQueueName(name string)

SetQueueName sets a custom queue name for channel subscription

It can be used for multiple applications listening one the same channel but wants to listen on different queues.

func (*NATSController) Subscribe

func (c *NATSController) Subscribe(channel string) (msgs chan UniversalMessage, stop chan interface{}, err error)

Subscribe to messages from the broker

type UniversalMessage

type UniversalMessage struct {
	CorrelationID *string
	Payload       []byte
}

UniversalMessage is a wrapper that will contain all information regarding a message

Jump to

Keyboard shortcuts

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