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.
Index ¶
- Variables
- type ClientController
- func (c *ClientController) AddMiddlewares(middleware ...middleware.Middleware)
- func (c *ClientController) Close(ctx context.Context)
- func (c *ClientController) PublishPing(ctx context.Context, msg PingMessage) error
- func (c *ClientController) SetLogger(logger log.Interface)
- func (c *ClientController) SubscribeAll(ctx context.Context, as ClientSubscriber) error
- func (c *ClientController) SubscribePong(ctx context.Context, fn func(ctx context.Context, msg PongMessage, done bool)) error
- func (c *ClientController) UnsubscribeAll(ctx context.Context)
- func (c *ClientController) UnsubscribePong(ctx context.Context)
- func (cc *ClientController) WaitForPong(ctx context.Context, publishMsg MessageWithCorrelationID, ...) (PongMessage, error)
- type ClientSubscriber
- type Error
- type MessageWithCorrelationID
- type PingMessage
- type PongMessage
Constants ¶
This section is empty.
Variables ¶
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 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(bc broker.Controller) (*ClientController, error)
NewClientController links the Client to the broker
func (*ClientController) AddMiddlewares ¶ added in v0.17.0
func (c *ClientController) AddMiddlewares(middleware ...middleware.Middleware)
AddMiddlewares attaches middlewares that will be executed when sending or receiving messages
func (*ClientController) Close ¶
func (c *ClientController) Close(ctx context.Context)
Close will clean up any existing resources on the controller
func (*ClientController) PublishPing ¶
func (c *ClientController) PublishPing(ctx context.Context, msg PingMessage) error
PublishPing will publish messages to 'ping' channel
func (*ClientController) SetLogger ¶ added in v0.15.0
func (c *ClientController) SetLogger(logger log.Interface)
SetLogger attaches a logger that will log operations on controller
func (*ClientController) SubscribeAll ¶
func (c *ClientController) SubscribeAll(ctx context.Context, 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) SubscribePong ¶
func (c *ClientController) SubscribePong(ctx context.Context, fn func(ctx context.Context, msg PongMessage, done bool)) error
SubscribePong will subscribe to new messages from 'pong' 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(ctx context.Context)
UnsubscribeAll will unsubscribe all remaining subscribed channels
func (*ClientController) UnsubscribePong ¶
func (c *ClientController) UnsubscribePong(ctx context.Context)
UnsubscribePong will unsubscribe messages from 'pong' channel
func (*ClientController) WaitForPong ¶
func (cc *ClientController) WaitForPong(ctx context.Context, publishMsg MessageWithCorrelationID, pub func(ctx context.Context) error) (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(ctx context.Context, msg PongMessage, done bool) }
ClientSubscriber represents all handlers that are expecting messages for Client
type MessageWithCorrelationID ¶ added in v0.4.0
type MessageWithCorrelationID interface {
CorrelationID() string
}
type PingMessage ¶
type PingMessage struct { // Headers will be used to fill the message headers Headers struct { // Description: 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
func (PingMessage) CorrelationID ¶ added in v0.4.0
func (msg PingMessage) CorrelationID() string
CorrelationID will give the correlation ID of the message, based on AsyncAPI spec
func (*PingMessage) SetAsResponseFrom ¶ added in v0.5.0
func (msg *PingMessage) SetAsResponseFrom(req MessageWithCorrelationID)
SetAsResponseFrom will correlate the message with the one passed in parameter. It will assign the 'req' message correlation ID to the message correlation ID, both specified in AsyncAPI spec.
type PongMessage ¶
type PongMessage struct { // Headers will be used to fill the message headers Headers struct { // Description: Correlation ID set by client on corresponding request CorrelationID *string `json:"correlation_id"` } // Payload will be inserted in the message payload Payload struct { // Description: Pong message Message string `json:"message"` // Description: Pong creation time Time time.Time `json:"time"` } }
PongMessage is the message expected for 'Pong' channel
func NewPongMessage ¶
func NewPongMessage() PongMessage
func (PongMessage) CorrelationID ¶ added in v0.4.0
func (msg PongMessage) CorrelationID() string
CorrelationID will give the correlation ID of the message, based on AsyncAPI spec
func (*PongMessage) SetAsResponseFrom ¶ added in v0.5.0
func (msg *PongMessage) SetAsResponseFrom(req MessageWithCorrelationID)
SetAsResponseFrom will correlate the message with the one passed in parameter. It will assign the 'req' message correlation ID to the message correlation ID, both specified in AsyncAPI spec.