comparison include/animone/strategies.h @ 31:668f4f31ddda

strategist: outward APIs are now in C
author Paper <paper@tflc.us>
date Mon, 10 Feb 2025 00:07:21 -0500
parents 27b988a1048c
children
comparison
equal deleted inserted replaced
30:a76e55e098d1 31:668f4f31ddda
1 #ifndef ANIMONE_ANIMONE_STRATEGIES_H_ 1 #ifndef ANIMONE_ANIMONE_STRATEGIES_H_
2 #define ANIMONE_ANIMONE_STRATEGIES_H_ 2 #define ANIMONE_ANIMONE_STRATEGIES_H_
3 3
4 #include "animone.h" 4 #include "animone.h"
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10 int animone_internal_ApplyStrategies(animone::Result *results, size_t results_size);
11
12 #ifdef __cplusplus
13 }
14
15 #include <cstdlib>
5 #include <vector> 16 #include <vector>
6 17
7 namespace animone::internal { 18 namespace animone::internal {
8 19
9 bool ApplyStrategies(std::vector<Result>& results); 20 inline bool ApplyStrategies(std::vector<Result>& results)
21 {
22 Result *results_c;
23 size_t results_size_c;
24
25 int x = ::animone_internal_ApplyStrategies(results_c, results_size_c);
26
27 results.assign(results_c, results_c + results_size_c);
28
29 std::free(results_c);
30
31 return x;
32 }
10 33
11 } 34 }
12 35
36 #endif // defined(__cplusplus)
37
13 #endif // ANIMONE_ANIMONE_STRATEGIES_H_ 38 #endif // ANIMONE_ANIMONE_STRATEGIES_H_