Documentation
¶
Overview ¶
Package "correlationID" provides primitives to interact with the AsyncAPI specification.
Code generated by github.com/lerenn/asyncapi-codegen version (devel) DO NOT EDIT.
Index ¶
- Variables
- type AppController
- func (c *AppController) AddMiddlewares(middleware ...extensions.Middleware)
- func (c *AppController) Close(ctx context.Context)
- func (c *AppController) PublishSmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, ...) error
- func (c *AppController) SetLogger(logger extensions.Logger)
- func (c *AppController) SubscribeAll(ctx context.Context, as AppSubscriber) error
- func (c *AppController) SubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, ...) error
- func (c *AppController) UnsubscribeAll(ctx context.Context)
- func (c *AppController) UnsubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, ...)
- type AppSubscriber
- type ClientController
- func (c *ClientController) AddMiddlewares(middleware ...extensions.Middleware)
- func (c *ClientController) Close(ctx context.Context)
- func (c *ClientController) PublishSmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, ...) error
- func (c *ClientController) SetLogger(logger extensions.Logger)
- func (c *ClientController) SubscribeAll(ctx context.Context, as ClientSubscriber) error
- func (c *ClientController) SubscribeSmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, ...) error
- func (c *ClientController) UnsubscribeAll(ctx context.Context)
- func (c *ClientController) UnsubscribeSmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, ...)
- type ClientSubscriber
- type DimLightMessage
- type DimLightPayloadSchema
- type Error
- type LightMeasuredMessage
- type LightMeasuredPayloadSchema
- type MessageWithCorrelationID
- type SentAtSchema
- type SmartylightingStreetlights10ActionStreetlightIDDimParameters
- type SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters
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 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(bc extensions.BrokerController) (*AppController, error)
NewAppController links the App to the broker
func (*AppController) AddMiddlewares ¶ added in v0.17.0
func (c *AppController) AddMiddlewares(middleware ...extensions.Middleware)
AddMiddlewares attaches middlewares that will be executed when sending or receiving messages
func (*AppController) Close ¶
func (c *AppController) Close(ctx context.Context)
Close will clean up any existing resources on the controller
func (*AppController) PublishSmartylightingStreetlights10ActionStreetlightIDDim ¶
func (c *AppController) PublishSmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, params SmartylightingStreetlights10ActionStreetlightIDDimParameters, msg DimLightMessage) error
PublishSmartylightingStreetlights10ActionStreetlightIDDim will publish messages to 'smartylighting/streetlights/1/0/action/{streetlightId}/dim' channel
func (*AppController) SetLogger ¶ added in v0.15.0
func (c *AppController) SetLogger(logger extensions.Logger)
SetLogger attaches a logger that will log operations on controller
func (*AppController) SubscribeAll ¶
func (c *AppController) SubscribeAll(ctx context.Context, 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) SubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured ¶
func (c *AppController) SubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, params SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters, fn func(ctx context.Context, msg LightMeasuredMessage, done bool)) error
SubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured will subscribe to new messages from 'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured' 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(ctx context.Context)
UnsubscribeAll will unsubscribe all remaining subscribed channels
func (*AppController) UnsubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured ¶
func (c *AppController) UnsubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, params SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters)
UnsubscribeSmartylightingStreetlights10EventStreetlightIDLightingMeasured will unsubscribe messages from 'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured' channel
type AppSubscriber ¶
type AppSubscriber interface { // SmartylightingStreetlights10EventStreetlightIDLightingMeasured SmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, msg LightMeasuredMessage, done bool) }
AppSubscriber represents all handlers that are expecting messages for App
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 extensions.BrokerController) (*ClientController, error)
NewClientController links the Client to the broker
func (*ClientController) AddMiddlewares ¶ added in v0.17.0
func (c *ClientController) AddMiddlewares(middleware ...extensions.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) PublishSmartylightingStreetlights10EventStreetlightIDLightingMeasured ¶
func (c *ClientController) PublishSmartylightingStreetlights10EventStreetlightIDLightingMeasured(ctx context.Context, params SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters, msg LightMeasuredMessage) error
PublishSmartylightingStreetlights10EventStreetlightIDLightingMeasured will publish messages to 'smartylighting/streetlights/1/0/event/{streetlightId}/lighting/measured' channel
func (*ClientController) SetLogger ¶ added in v0.15.0
func (c *ClientController) SetLogger(logger extensions.Logger)
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) SubscribeSmartylightingStreetlights10ActionStreetlightIDDim ¶
func (c *ClientController) SubscribeSmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, params SmartylightingStreetlights10ActionStreetlightIDDimParameters, fn func(ctx context.Context, msg DimLightMessage, done bool)) error
SubscribeSmartylightingStreetlights10ActionStreetlightIDDim will subscribe to new messages from 'smartylighting/streetlights/1/0/action/{streetlightId}/dim' 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) UnsubscribeSmartylightingStreetlights10ActionStreetlightIDDim ¶
func (c *ClientController) UnsubscribeSmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, params SmartylightingStreetlights10ActionStreetlightIDDimParameters)
UnsubscribeSmartylightingStreetlights10ActionStreetlightIDDim will unsubscribe messages from 'smartylighting/streetlights/1/0/action/{streetlightId}/dim' channel
type ClientSubscriber ¶
type ClientSubscriber interface { // SmartylightingStreetlights10ActionStreetlightIDDim SmartylightingStreetlights10ActionStreetlightIDDim(ctx context.Context, msg DimLightMessage, done bool) }
ClientSubscriber represents all handlers that are expecting messages for Client
type DimLightMessage ¶
type DimLightMessage struct { // Payload will be inserted in the message payload Payload DimLightPayloadSchema }
DimLightMessage is the message expected for 'DimLight' channel
func NewDimLightMessage ¶
func NewDimLightMessage() DimLightMessage
type DimLightPayloadSchema ¶
type DimLightPayloadSchema struct { // Description: Percentage to which the light should be dimmed to. Percentage *int64 `json:"percentage"` // Description: Date and time when the message was sent. SentAt *SentAtSchema `json:"sent_at"` }
DimLightPayloadSchema is a schema from the AsyncAPI specification required in messages
type LightMeasuredMessage ¶
type LightMeasuredMessage struct { // Headers will be used to fill the message headers Headers struct { Mqmd *struct { CorrelID *string `json:"correl_id"` } `json:"mqmd"` } // Payload will be inserted in the message payload Payload LightMeasuredPayloadSchema }
LightMeasuredMessage is the message expected for 'LightMeasured' channel
func NewLightMeasuredMessage ¶
func NewLightMeasuredMessage() LightMeasuredMessage
func (LightMeasuredMessage) CorrelationID ¶
func (msg LightMeasuredMessage) CorrelationID() string
CorrelationID will give the correlation ID of the message, based on AsyncAPI spec
func (*LightMeasuredMessage) SetAsResponseFrom ¶
func (msg *LightMeasuredMessage) 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 LightMeasuredPayloadSchema ¶
type LightMeasuredPayloadSchema struct { // Description: Light intensity measured in lumens. Lumens *int64 `json:"lumens"` // Description: Date and time when the message was sent. SentAt *SentAtSchema `json:"sent_at"` }
LightMeasuredPayloadSchema is a schema from the AsyncAPI specification required in messages
type MessageWithCorrelationID ¶
type MessageWithCorrelationID interface {
CorrelationID() string
}
type SentAtSchema ¶
SentAtSchema is a schema from the AsyncAPI specification required in messages Description: Date and time when the message was sent.
func (SentAtSchema) MarshalJSON ¶ added in v0.6.1
func (t SentAtSchema) MarshalJSON() ([]byte, error)
MarshalJSON will override the marshal as this is not a normal 'time.Time' type
func (*SentAtSchema) UnmarshalJSON ¶ added in v0.6.1
func (t *SentAtSchema) UnmarshalJSON(data []byte) error
UnmarshalJSON will override the unmarshal as this is not a normal 'time.Time' type
type SmartylightingStreetlights10ActionStreetlightIDDimParameters ¶ added in v0.9.0
type SmartylightingStreetlights10ActionStreetlightIDDimParameters struct { // Description: The ID of the streetlight. StreetlightID string }
SmartylightingStreetlights10ActionStreetlightIDDimParameters represents SmartylightingStreetlights10ActionStreetlightIDDim channel parameters
type SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters ¶ added in v0.9.0
type SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters struct { // Description: The ID of the streetlight. StreetlightID string }
SmartylightingStreetlights10EventStreetlightIDLightingMeasuredParameters represents SmartylightingStreetlights10EventStreetlightIDLightingMeasured channel parameters