types

package
v3.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2023 License: Apache-2.0 Imports: 7 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HostInfo

type HostInfo struct {
	// Host is the hostname or IP address of the messaging broker, if applicable.
	Host string
	// Port defines the port on which to access the message queue.
	Port int
	// Protocol indicates the protocol to use when accessing the message queue.
	Protocol string
}

HostInfo is the URL information of the host as the following scheme: <Protocol>://<Broker>:<Port>

func (*HostInfo) GetHostURL

func (info *HostInfo) GetHostURL() string

GetHostURL returns the complete URL for the host-info configuration

func (*HostInfo) IsHostInfoEmpty

func (info *HostInfo) IsHostInfoEmpty() bool

IsHostInfoEmpty returns whether the host-info has been initialized or not

type MessageBusConfig

type MessageBusConfig struct {
	// Broker contains the connection information for publishing and subscribing to the broker for the EdgeX MessageBus
	Broker HostInfo
	// Type indicates the message queue platform being used. eg. "redis" for Redis Pub/Sub
	Type string
	// Optional contains all other properties of message bus that are specific to
	// certain concrete implementations like MQTT's QoS, for example.
	Optional map[string]string
}

MessageBusConfig defines the messaging information need to connect to the message bus in a publish-subscribe pattern

type MessageEnvelope

type MessageEnvelope struct {
	// ApiVersion (from Versionable) shows the API version for the message envelope.
	commonDTO.Versionable
	// ReceivedTopic is the topic that the message was received on.
	ReceivedTopic string `json:"receivedTopic"`
	// CorrelationID is an object id to identify the envelope.
	CorrelationID string `json:"correlationID"`
	// RequestID is an object id to identify the request.
	RequestID string `json:"requestID"`
	// ErrorCode provides the indication of error. '0' indicates no error, '1' indicates error.
	// Additional codes may be added in the future. If non-0, the payload will contain the error.
	ErrorCode int `json:"errorCode"`
	// Payload is byte representation of the data being transferred.
	Payload []byte `json:"payload"`
	// ContentType is the marshaled type of payload, i.e. application/json, application/xml, application/cbor, etc
	ContentType string `json:"contentType"`
	// QueryParams is optionally provided key/value pairs.
	QueryParams map[string]string `json:"queryParams,omitempty"`
}

MessageEnvelope is the data structure for messages. It wraps the generic message payload with attributes.

func NewMessageEnvelope

func NewMessageEnvelope(payload []byte, ctx context.Context) MessageEnvelope

NewMessageEnvelope creates a new MessageEnvelope for the specified payload with attributes from the specified context

func NewMessageEnvelopeForRequest

func NewMessageEnvelopeForRequest(payload []byte, queryParams map[string]string) MessageEnvelope

NewMessageEnvelopeForRequest creates a new MessageEnvelope for sending request to EdgeX via internal MessageBus to target Device Service. Used when request is from internal App Service via command client.

func NewMessageEnvelopeForResponse

func NewMessageEnvelopeForResponse(payload []byte, requestId string, correlationId string, contentType string) (MessageEnvelope, error)

NewMessageEnvelopeForResponse creates a new MessageEnvelope for sending response from Device Service back to Core Command.

func NewMessageEnvelopeFromJSON

func NewMessageEnvelopeFromJSON(message []byte) (MessageEnvelope, error)

NewMessageEnvelopeFromJSON creates a new MessageEnvelope by decoding the message payload received from external MQTT in order to send request via internal MessageBus.

func NewMessageEnvelopeWithError

func NewMessageEnvelopeWithError(requestId string, errorMessage string) MessageEnvelope

NewMessageEnvelopeWithError creates a new MessageEnvelope with ErrorCode set to 1 indicating there's error and the payload contains message string about the error.

type TopicChannel

type TopicChannel struct {
	// Topic for subscriber to filter on if any
	Topic string
	// Messages is the returned message channel for the subscriber
	Messages chan MessageEnvelope
}

TopicChannel is the data structure for subscriber

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL