ramdb/docs/core/handler.md
Jacob Schmidt 8c0e8144e5 docs: Update documentation links and function references
This commit updates the documentation to reflect the current function names and link structure. Specifically, it addresses the following:

*   Corrected internal links within the documentation to point to the correct markdown files (e.g., `hashDelete.md` instead of `hashDelete`).
*   Updated related function references to reflect the current function names and include missing functions.
*   Removed outdated function references.
*   Added `ramdb_db_fnc_scheduler` to related functions where appropriate.
*   Updated the links section to use the correct markdown file names.
2025-03-22 16:53:30 -05:00

65 lines
2.8 KiB
Markdown

---
title: ArmaRAMDb - Handler
icon: mdi:file-text-outline
excerpt: Handle data from DB.
---
# ramdb_db_fnc_handler
## Description
Handles data received from the database and routes it to the appropriate function. This function is a critical component of the callback system, receiving data from database operations and directing it to the specified function, either locally or to a remote client.
## Syntax
```sqf
[_uniqueID, _function, _call, _data, _netId] call ramdb_db_fnc_handler
```
## Parameters
| Parameter | Type | Description | Default |
|-------------|----------------------------------|-------------------------------------------------------|---------|
| `_uniqueID` | String | Unique identifier for the data chunk | "" |
| `_function` | String | Name of function to receive the data | "" |
| `_call` | Boolean | Whether to call the function directly (true) or spawn (false) | false |
| `_data` | Array, String, Number, or Boolean| The data retrieved from the database | [] |
| `_netId` | String | (Optional) NetID of the player to receive the data | nil |
## Return Value
None. The data is passed to the specified function for processing.
## Examples
### Process data locally:
```sqf
["0123456789", "ramdb_db_fnc_test", false, ["Hello World!"]] call ramdb_db_fnc_handler;
```
### Send data to a specific client:
```sqf
["0123456789", "ramdb_db_fnc_test", false, ["Hello World!"], netId player] remoteExecCall ["ramdb_db_fnc_handler", 2, false];
```
### Process data with direct call (synchronous):
```sqf
["0123456789", "ramdb_db_fnc_processInventory", true, [["weapon1", 30], ["item2", 5]]] call ramdb_db_fnc_handler;
```
## Notes
- The function validates that both the function name and data are valid before proceeding
- When a netId is provided, the data is sent to that specific client using remoteExec
- The `_call` parameter determines whether the function is called directly (synchronous) or spawned (asynchronous)
- This function is typically called by the scheduler or other core components rather than directly by user code
- Each handler call is logged, which is useful for debugging data flow
## Related Functions
- `ramdb_db_fnc_scheduler`: Processes callbacks from the database extension
- `ramdb_db_fnc_fetch`: Assembles data chunks for large datasets
- `ramdb_db_fnc_addTask`: Adds tasks to the database operation queue
## Links
[Add Task](addtask.md) |
[Handler](handler.md) |
[Init](init.md) |
[Print Addon Name](printaddonname.md) |
[Process Queue](processqueue.md) |
[Scheduler](scheduler.md) |
[Test](test.md)