issues

package
v0.14.0 Latest Latest
Warning

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

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

Documentation

Overview

Package "issues" 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 BrokerController

type BrokerController interface {
	// AttachLogger attaches a logger that will log operations on broker controller
	AttachLogger(logger 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 ChatMessage

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

ChatMessage is the message expected for 'Chat' channel

func NewChatMessage

func NewChatMessage() ChatMessage

type ClientController

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

ClientController is the structure that provides publishing capabilities to the developer and and connect the broker with the Client

func NewClientController

func NewClientController(bs BrokerController) (*ClientController, error)

NewClientController links the Client to the broker

func (*ClientController) AttachLogger

func (c *ClientController) AttachLogger(logger Logger)

AttachLogger attaches a logger that will log operations on controller

func (*ClientController) Close

func (c *ClientController) Close()

Close will clean up any existing resources on the controller

func (*ClientController) PublishChat

func (c *ClientController) PublishChat(msg ChatMessage) error

PublishChat will publish messages to '/chat' channel

func (*ClientController) SubscribeAll

func (c *ClientController) SubscribeAll(as ClientSubscriber) 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 (*ClientController) SubscribeStatus

func (c *ClientController) SubscribeStatus(fn func(msg StatusMessage, done bool)) error

SubscribeStatus will subscribe to new messages from '/status' 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 (*ClientController) UnsubscribeAll

func (c *ClientController) UnsubscribeAll()

UnsubscribeAll will unsubscribe all remaining subscribed channels

func (*ClientController) UnsubscribeStatus

func (c *ClientController) UnsubscribeStatus()

UnsubscribeStatus will unsubscribe messages from '/status' channel

type ClientSubscriber

type ClientSubscriber interface {
	// Chat
	Chat(msg ChatMessage, done bool)

	// Status
	Status(msg StatusMessage, done bool)
}

ClientSubscriber represents all handlers that are expecting messages for Client

type Error

type Error struct {
	Channel string
	Err     error
}

func (*Error) Error

func (e *Error) Error() string

type Logger

type Logger interface {
	// Info logs information based on a message and key-value elements
	Info(msg string, keyvals ...interface{})

	// Error logs error based on a message and key-value elements
	Error(msg string, keyvals ...interface{})
}

type Message

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

Message is the message expected for ” channel

func NewMessage

func NewMessage() Message

type MessageWithCorrelationID

type MessageWithCorrelationID interface {
	CorrelationID() string
}

type StatusMessage

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

StatusMessage is the message expected for 'Status' channel

func NewStatusMessage

func NewStatusMessage() StatusMessage

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