generated

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2023 License: Apache-2.0 Imports: 7 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")

	// ErrTimedOut is given when any timeout happen
	ErrTimedOut = fmt.Errorf("%w: time out", ErrAsyncAPI)
)

Functions

This section is empty.

Types

type Book

type Book struct {
	// Title
	Title string `json:"title"`
}

Book is a component of the AsyncAPI specification required in messages Book Information

type BrokerController

type BrokerController interface {
	// 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)
}

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

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

NewClientController links the client to the broker

func (*ClientController) Close

func (cc *ClientController) Close()

Close will clean up any existing resources on the controller

func (*ClientController) Listen

func (cc *ClientController) Listen(irq chan interface{})

Listen will let the controller handle subscriptions and will be interrupted only when an struct is sent on the interrupt channel

func (*ClientController) PublishPing

func (cc *ClientController) PublishPing(msg PingMessage) error

PublishPing will publish messages to 'ping' channel

func (*ClientController) SubscribeAll

func (cc *ClientController) SubscribeAll(cs ClientSubscriber) error

SubscribeAll will subscribe to channels on which the client is expecting messages

func (*ClientController) SubscribePong

func (cc *ClientController) SubscribePong(fn func(msg PongMessage)) error

SubscribePong will subscribe to new messages from 'pong' channel

func (*ClientController) UnsubscribeAll

func (cc *ClientController) UnsubscribeAll()

UnsubscribeAll will unsubscribe all remaining subscribed channels

func (*ClientController) UnsubscribePong

func (cc *ClientController) UnsubscribePong()

UnsubscribePong will unsubscribe messages from 'pong' channel

func (*ClientController) WaitForPong

func (cc *ClientController) WaitForPong(correlationID string, pub func() error, timeout time.Duration) (PongMessage, error)

WaitForPong will wait for a specific message by its correlation ID

The pub function is the publication function that should be used to send the message It will be called after subscribing to the channel to avoid race condition, and potentially loose the message

type ClientSubscriber

type ClientSubscriber interface {
	// Pong
	Pong(msg PongMessage)
}

ClientSubscriber represents all application handlers that are expecting messages from application

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) Subscribe

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

Subscribe to messages from the broker

type PingMessage

type PingMessage struct {
	// Headers will be used to fill the message headers
	Headers struct {
		// Correlation ID set by client
		CorrelationID string `json:"correlation_id"`
	}

	// Payload will be inserted in the message payload
	Payload string
}

PingMessage is the message expected for 'Ping' channel

func NewPingMessage

func NewPingMessage() PingMessage

type PongMessage

type PongMessage struct {
	// Headers will be used to fill the message headers
	Headers struct {
		// Correlation ID set by client on corresponding request
		CorrelationID string `json:"correlation_id"`
	}

	// Payload will be inserted in the message payload
	Payload string
}

PongMessage is the message expected for 'Pong' channel

func NewPongMessage

func NewPongMessage() PongMessage

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