Module gcore::msg

source ·
Expand description

Messaging API for Gear programs.

This module contains an API to process incoming messages and synchronously 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, read, 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.