dragonfly/addons/db/functions/fnc_pubSubFetch.sqf

54 lines
1.7 KiB
Plaintext

#include "script_component.hpp"
/*
@file Title: ArmaDragonflyClient Framework by Creedcoder, J.Schmidt
@file Version: 0.1
@file Name: fnc_pubSubFetch.sqf
@file Author: Creedcoder, J.Schmidt
@file edit: 03.25.2024
Copyright © 2024 Creedcoder, J.Schmidt, All rights reserved
Do not edit without permission!
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlikes 4.0 International License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to Creative Commons,
444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Fetch from DB:
dragonfly_db_pubSubFetch_array
["uniqueID", "evetnType", "eventName", "index", "indextotal", "datachunk", "target"]
*/
diag_log _this;
params ["_uniqueID", "_eventType", "_eventName", "_index", "_total", "_datachunk", "_target"];
private _dataString = "";
private _index_array = [];
private _count_total = -1;
dragonfly_db_pubSubFetch_array pushBackUnique [_uniqueID, _eventType, _eventName, _index, _total, _datachunk, _target];
_count_total = {
if (_uniqueID == _x select 0) then {
_index_array pushBackUnique [_x select 3, _x select 5];
true
} else {
false
}
} count dragonfly_db_pubSubFetch_array;
if (_count_total == _total) then {
_index_array sort true;
for "_i" from 0 to (_total - 1) do {
_dataString = _dataString + ((_index_array select _i) select 1);
};
diag_log _dataString;
[_uniqueID, _eventType, _eventName, (parseSimpleArray _dataString), _target] call FUNC(pubSubHandler);
dragonfly_db_pubSubFetch_array = dragonfly_db_pubSubFetch_array select {!((_x select 0) in [_uniqueID])};
};