gstd

Module msg

source
Expand description

Messaging API for Gear programs.

This module contains an API to process incoming messages and send outgoing ones. Messages are the primary communication interface between actors (users and programs).

Every Gear program has code that handles messages. During message processing, a program can send messages to other programs and users, including a reply to the initial message.

When some actor (user or program) sends a message to the program, it invokes this program by executing the handle function. The invoked program can obtain details of incoming messages by using this module’s API (source, size, load, id, value, etc.).

Optionally the program can send one or more messages to other actors. Also, it can send a reply that differs from a regular message in two ways:

  • There can be no more than one reply;
  • It is impossible to choose the reply’s destination, as it is always sent to the program invoker.

Note that messages and a reply are not sent immediately but collected during the program execution and enqueued after the execution successfully ends.

Structs§

Functions§

  • Get an identifier of the message that is currently being processed.
  • Get a payload of the message that is currently being processed.
  • Get a payload of the message that is currently being processed.
  • Send a new message as a reply to the message being processed.
  • Send a new message as a reply to the message that is currently being processed.
  • Get the reply code of the message being processed.
  • Finalize and send the current reply message.
  • Same as reply but uses the input buffer as a payload source.
  • Push a payload part to the current reply message.
  • Same as reply_push but uses the input buffer as a payload source.
  • Get an identifier of the initial message on which the current handle_reply function is called.
  • Send a new message to the program or user.
  • Send a new message to the program or user.
  • Same as send_bytes, but sends the message after the delay expressed in block count.
  • Same as send_bytes, but the program will interrupt until the reply is received.
  • Same as send_bytes, but the program will interrupt until the reply is received.
  • Same as send, but sends the message after the delay expressed in block count.
  • Same as send, but the program will interrupt until the reply is received.
  • Same as send, but the program will interrupt until the reply is received.
  • Same as send but uses the input buffer as a payload source.
  • Same as send_input, but sends the message after the delay expressed in block count.
  • Same as send_input, but the program will interrupt until the reply is received.
  • Same as send_input, but the program will interrupt until the reply is received.
  • Get the payload size of the message that is being processed.
  • Get the identifier of the message source (256-bit address).
  • Get the value associated with the message that is being processed.
  • Executes function f with provided message payload allocated on stack.