Description
The MessageEnvelope class allows you to add additional information to messages.
Important points
- A correlation id, message id, and a message type are added to the data being sent/received. Additionally, a MessageEnvelope can reference a lock token.
- A MessageEnvelope’s message is stored as a buffer, so strings are converted using utf8 conversions.
Constructors
NewMessageEnvelope
Creates a new MessageEnvelope, which adds a correlation id, message id, and a type to the data being sent/received.
NewMessageEnvelope(context IContext, messageType string, message []byte) *MessageEnvelope
- context: IContext - (optional) a context to trace execution through a call chain.
- messageType: string - a string value that defines the message’s type.
- message: []byte - the data being sent/received.
NewEmptyMessageEnvelope
NewMessageEnvelope method are creates an empty MessageEnvelope
NewEmptyMessageEnvelope() *MessageEnvelope
NewMessageEnvelopeFromObject
NewMessageEnvelopeFromObject(context IContext, messageType string, message any) *MessageEnvelope
- context: IContext (optional) a context to trace execution through a call chain.
- messageType: string a string value that defines the message"s type.
- message: any the data object being sent/received.
Fields
Methods
MarshalJSON
TODO: add description
(c *MessageEnvelope) MarshalJSON() ([]byte, error)
- returns: ([]byte, error) - TODO: add description
UnmarshalJSON
TODO: add description
(c *MessageEnvelope) UnmarshalJSON(data []byte) error
- data: []byte - TODO: add description
GetMessageAs
Returns any the value that was stored in this message as a JSON string.
See also SetMessageAsObject
(c *MessageEnvelope) GetMessageAs(value any) any
- value: any - TODO: add description.
- returns: any - value that was stored in this message as a JSON string.
GetMessageAsString
Returns the information stored in this message as a UTF-8 encoded string.
(c *MessageEnvelope) GetMessageAsString() string
- returns: string - information stored in this message as a UTF-8 encoded string.
GetMessageAs
GetMessageAs method are returns the value that was stored in this message as object.
GetMessageAs[T any](envelope *MessageEnvelope) (T, error)
- envelope: *MessageEnvelope - message envelope obj.
- returns: (T, error) - result struct or error.
GetReference
Returns the lock token that this MessageEnvelope references.
(c *MessageEnvelope) GetReference() any
- returns: any - lock token that this MessageEnvelope references.
SetMessageAsObject
Stores the given value as an object. See also GetMessageAs
(c *MessageEnvelope) SetMessageAsObject(value any)
- value: any - value to convert to JSON and store in this message.
SetMessageAsString
Stores the given string.
(c *MessageEnvelope) SetMessageAsString(value string)
- value: string - string to set. It will be converted to a buffer using UTF-8 encoding.
SetReference
Sets a lock token reference for this MessageEnvelope.
(c *MessageEnvelope) SetReference(value any)
- value: any - lock token to reference the message envelope.
String
Converts this MessageEnvelope to a string, using the following format:
"[
If any of the values are nil, they will be replaced with ---.
(c *MessageEnvelope) String() string
- returns: string - generated string.