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
- Variables
- type Book
- type BrokerController
- type ClientController
- func (cc *ClientController) Close()
- func (cc *ClientController) Listen(irq chan interface{})
- func (cc *ClientController) PublishPing(msg PingMessage) error
- func (cc *ClientController) SubscribeAll(cs ClientSubscriber) error
- func (cc *ClientController) SubscribePong(fn func(msg PongMessage)) error
- func (cc *ClientController) UnsubscribeAll()
- func (cc *ClientController) UnsubscribePong()
- func (cc *ClientController) WaitForPong(correlationID string, pub func() error, timeout time.Duration) (PongMessage, error)
- type ClientSubscriber
- type NATSController
- type PingMessage
- type PongMessage
- type UniversalMessage
Constants ¶
const (
// CorrelationIDField is the name of the field that will contain the correlation ID
CorrelationIDField = "correlation_id"
)
Variables ¶
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 ¶
UniversalMessage is a wrapper that will contain all information regarding a message