Skip to content

AppWorker ​

Runs in the background, and can communicate with the foreground app.

Functions ​

bool app_worker_is_running(void)

Determine if the worker for the current app is running.

Returns ​

true if running

AppWorkerResult app_worker_launch(void)

Launch the worker for the current app. Note that this is an asynchronous operation, a result code of APP_WORKER_RESULT_SUCCESS merely means that the request was successfully queued up.

Returns ​

result code

AppWorkerResult app_worker_kill(void)

Kill the worker for the current app. Note that this is an asynchronous operation, a result code of APP_WORKER_RESULT_SUCCESS merely means that the request was successfully queued up.

Returns ​

result code

bool app_worker_message_subscribe(AppWorkerMessageHandler handler)

Subscribe to worker messages. Once subscribed, the handler gets called on every message emitted by the other task (either worker or app).

Parameters ​
  • handler: A callback to be executed when the event is received
Returns ​

true on success

bool app_worker_message_unsubscribe(void)

Unsubscribe from worker messages. Once unsubscribed, the previously registered handler will no longer be called.

Returns ​

true on success

void app_worker_send_message(uint8_t type, AppWorkerMessage *data)

Send a message to the other task (either worker or app).

Parameters ​
  • type: An application defined message type
  • data: the message data structure

Enums ​

AppWorkerResult

Possible error codes from app_worker_launch, app_worker_kill.

Values ​
  • APP_WORKER_RESULT_SUCCESS: Success.
  • APP_WORKER_RESULT_NO_WORKER: No worker found for the current app.
  • APP_WORKER_RESULT_DIFFERENT_APP: A worker for a different app is already running.
  • APP_WORKER_RESULT_NOT_RUNNING: The worker is not running.
  • APP_WORKER_RESULT_ALREADY_RUNNING: The worker is already running.
  • APP_WORKER_RESULT_ASKING_CONFIRMATION: The user will be asked for confirmation.

AppWorkerResult

Possible error codes from app_worker_launch, app_worker_kill.

Values ​
  • APP_WORKER_RESULT_SUCCESS: Success.
  • APP_WORKER_RESULT_NO_WORKER: No worker found for the current app.
  • APP_WORKER_RESULT_DIFFERENT_APP: A worker for a different app is already running.
  • APP_WORKER_RESULT_NOT_RUNNING: The worker is not running.
  • APP_WORKER_RESULT_ALREADY_RUNNING: The worker is already running.
  • APP_WORKER_RESULT_ASKING_CONFIRMATION: The user will be asked for confirmation.

Typedefs ​

typedef void(* AppWorkerMessageHandler) (uint16_t type, AppWorkerMessage *data)

Callback type for worker messages. Messages can be sent from worker to app or vice versa.

Parameters ​
  • type: An application defined message type
  • data: pointer to message data. The receiver must know the structure of the data provided by the sender.

typedef void(* AppWorkerMessageHandler) (uint16_t type, AppWorkerMessage *data)

Callback type for worker messages. Messages can be sent from worker to app or vice versa.

Parameters ​
  • type: An application defined message type
  • data: pointer to message data. The receiver must know the structure of the data provided by the sender.