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.