libdatadog 40.0.0.2.0 → 45.0.0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +2 -2
  3. data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/aarch64-linux}/LICENSE-3rdparty.csv +15 -12
  4. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-40.0.0/x86_64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/common.h +176 -122
  6. data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux}/include/datadog/data-pipeline.h +79 -9
  7. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/ffe.h +12 -0
  8. data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/library-config.h +47 -24
  9. data/vendor/{libdatadog-40.0.0/x86_64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/otel-thread-ctx.h +35 -5
  10. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  12. data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +15 -12
  13. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  14. data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/common.h +176 -122
  15. data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +79 -9
  16. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ffe.h +12 -0
  17. data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/library-config.h +47 -24
  18. data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/otel-thread-ctx.h +35 -5
  19. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  21. data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/LICENSE-3rdparty.csv +15 -12
  22. data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/arm64-darwin}/include/datadog/common.h +176 -122
  23. data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/arm64-darwin}/include/datadog/data-pipeline.h +79 -9
  24. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/ffe.h +12 -0
  25. data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/include/datadog/library-config.h +47 -24
  26. data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/include/datadog/otel-thread-ctx.h +35 -5
  27. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/lib/libdatadog_profiling.dylib +0 -0
  28. data/vendor/{libdatadog-40.0.0/x86_64-linux-musl → libdatadog-45.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  29. data/vendor/libdatadog-45.0.0/x86_64-linux/LICENSE-3rdparty.csv +557 -0
  30. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  31. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/common.h +3169 -0
  32. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/data-pipeline.h +682 -0
  33. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/ffe.h +191 -0
  34. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/library-config.h +138 -0
  35. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +116 -0
  36. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/lib/libdatadog_profiling.so +0 -0
  37. data/vendor/libdatadog-45.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
  38. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/LICENSE-3rdparty.csv +15 -12
  39. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  40. data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/x86_64-linux-musl}/include/datadog/common.h +176 -122
  41. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/data-pipeline.h +79 -9
  42. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/ffe.h +12 -0
  43. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/library-config.h +47 -24
  44. data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/x86_64-linux-musl}/include/datadog/otel-thread-ctx.h +35 -5
  45. data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
  46. data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  47. metadata +91 -91
  48. data/vendor/libdatadog-40.0.0/x86_64-linux/LICENSE-3rdparty.csv +0 -554
  49. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/common.h +0 -3115
  50. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/data-pipeline.h +0 -612
  51. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/ffe.h +0 -179
  52. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/library-config.h +0 -115
  53. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +0 -86
  54. data/vendor/libdatadog-40.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  55. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/LICENSE +0 -0
  56. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/NOTICE +0 -0
  57. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
  58. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/crashtracker.h +0 -0
  59. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/ddsketch.h +0 -0
  60. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/log.h +0 -0
  61. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/profiling.h +0 -0
  62. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/shared-runtime.h +0 -0
  63. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
  64. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/LICENSE +0 -0
  65. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/NOTICE +0 -0
  66. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
  67. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/crashtracker.h +0 -0
  68. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +0 -0
  69. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
  70. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/profiling.h +0 -0
  71. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/shared-runtime.h +0 -0
  72. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
  73. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/LICENSE +0 -0
  74. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/NOTICE +0 -0
  75. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/bin/libdatadog-crashtracking-receiver +0 -0
  76. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/blazesym.h +0 -0
  77. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/crashtracker.h +0 -0
  78. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/ddsketch.h +0 -0
  79. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/log.h +0 -0
  80. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/profiling.h +0 -0
  81. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/shared-runtime.h +0 -0
  82. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/telemetry.h +0 -0
  83. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/LICENSE +0 -0
  84. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/NOTICE +0 -0
  85. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/blazesym.h +0 -0
  86. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/crashtracker.h +0 -0
  87. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/ddsketch.h +0 -0
  88. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/log.h +0 -0
  89. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/profiling.h +0 -0
  90. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/shared-runtime.h +0 -0
  91. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/telemetry.h +0 -0
  92. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/LICENSE +0 -0
  93. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/NOTICE +0 -0
  94. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/blazesym.h +0 -0
  95. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/crashtracker.h +0 -0
  96. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/ddsketch.h +0 -0
  97. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/log.h +0 -0
  98. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/profiling.h +0 -0
  99. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/shared-runtime.h +0 -0
  100. /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/telemetry.h +0 -0
@@ -1,179 +0,0 @@
1
- // Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
-
5
- #ifndef DDOG_FFE_H
6
- #define DDOG_FFE_H
7
-
8
- #pragma once
9
-
10
- #include <stdbool.h>
11
- #include <stddef.h>
12
- #include <stdint.h>
13
- #include "common.h"
14
-
15
- #ifdef __cplusplus
16
- extern "C" {
17
- #endif // __cplusplus
18
-
19
- /**
20
- * Evaluates a feature flag.
21
- *
22
- * # Ownership
23
- *
24
- * The caller must call `ddog_ffe_assignment_drop` on the returned value to free resources.
25
- *
26
- * # Safety
27
- *
28
- * - `config` must be a valid `Configuration` handle
29
- * - `flag_key` must be a valid C string
30
- * - `context` must be a valid `EvaluationContext` handle
31
- */
32
- DDOG_CHECK_RETURN
33
- ddog_ffe_Handle_ResolutionDetails ddog_ffe_get_assignment(ddog_ffe_Handle_Configuration config,
34
- const char *flag_key,
35
- enum ddog_ffe_ExpectedFlagType expected_type,
36
- ddog_ffe_Handle_EvaluationContext context);
37
-
38
- /**
39
- * Get value produced by evaluation.
40
- *
41
- * # Ownership
42
- *
43
- * The returned `VariantValue` borrows from `assignment`. It must not be used after `assignment` is
44
- * freed.
45
- *
46
- * # Safety
47
- * `assignment` must be a valid handle.
48
- */
49
- struct ddog_ffe_VariantValue ddog_ffe_assignment_get_value(ddog_ffe_Handle_ResolutionDetails assignment);
50
-
51
- /**
52
- * Get variant key produced by evaluation. Returns `NULL` if evaluation did not produce any value.
53
- *
54
- * # Ownership
55
- *
56
- * The returned string borrows from `assignment`. It must not be used after `assignment` is
57
- * freed.
58
- *
59
- * # Safety
60
- * `assignment` must be a valid handle.
61
- */
62
- struct ddog_ffe_BorrowedStr ddog_ffe_assignment_get_variant(ddog_ffe_Handle_ResolutionDetails assignment);
63
-
64
- /**
65
- * Get allocation key produced by evaluation. Returns `NULL` if evaluation did not produce any
66
- * value.
67
- *
68
- * # Ownership
69
- *
70
- * The returned string borrows from `assignment`. It must not be used after `assignment` is
71
- * freed.
72
- *
73
- * # Safety
74
- * `assignment` must be a valid handle.
75
- */
76
- struct ddog_ffe_BorrowedStr ddog_ffe_assignment_get_allocation_key(ddog_ffe_Handle_ResolutionDetails assignment);
77
-
78
- /**
79
- * # Safety
80
- * `assignment` must be a valid handle.
81
- */
82
- enum ddog_ffe_Reason ddog_ffe_assignment_get_reason(ddog_ffe_Handle_ResolutionDetails assignment);
83
-
84
- /**
85
- * # Safety
86
- * `assignment` must be a valid handle.
87
- */
88
- enum ddog_ffe_ErrorCode ddog_ffe_assignment_get_error_code(ddog_ffe_Handle_ResolutionDetails assignment);
89
-
90
- /**
91
- * # Safety
92
- * `assignment` must be a valid handle.
93
- */
94
- struct ddog_ffe_BorrowedStr ddog_ffe_assignment_get_error_message(ddog_ffe_Handle_ResolutionDetails assignment);
95
-
96
- /**
97
- * Get the serial_id produced by evaluation.
98
- *
99
- * Returns `None` if the assignment has no serial_id or evaluation did not produce any value.
100
- *
101
- * # Safety
102
- * `assignment` must be a valid handle.
103
- */
104
- struct ddog_Option_I32 ddog_ffe_assignment_get_serial_id(ddog_ffe_Handle_ResolutionDetails assignment);
105
-
106
- /**
107
- * # Safety
108
- * `assignment` must be a valid handle.
109
- */
110
- bool ddog_ffe_assignment_get_do_log(ddog_ffe_Handle_ResolutionDetails assignment);
111
-
112
- /**
113
- * # Safety
114
- * `assignment` must be a valid handle.
115
- */
116
- struct ddog_ffe_ArrayMap_BorrowedStr ddog_ffe_assignnment_get_flag_metadata(ddog_ffe_Handle_ResolutionDetails assignment);
117
-
118
- /**
119
- * Frees an Assignment handle.
120
- *
121
- * # Safety
122
- * - `assignment` must be a valid Assignment handle
123
- */
124
- void ddog_ffe_assignment_drop(ddog_ffe_Handle_ResolutionDetails *assignment);
125
-
126
- /**
127
- * Creates a new Configuration from JSON bytes.
128
- *
129
- * # Ownership
130
- *
131
- * The caller must call `ddog_ffe_configuration_drop` to release resources allocated for
132
- * configuration.
133
- *
134
- * # Safety
135
- *
136
- * - `json_bytes` must point to valid memory.
137
- */
138
- DDOG_CHECK_RETURN
139
- struct ddog_ffe_Result_HandleConfiguration ddog_ffe_configuration_new(struct ddog_ffe_BorrowedStr json_bytes);
140
-
141
- /**
142
- * Frees a Configuration.
143
- *
144
- * # Safety
145
- *
146
- * `config` must be a valid Configuration handle created by `ddog_ffe_configuration_new`.
147
- */
148
- void ddog_ffe_configuration_drop(ddog_ffe_Handle_Configuration *config);
149
-
150
- /**
151
- * Creates a new EvaluationContext with the given targeting key and attributes.
152
- *
153
- * # Ownership
154
- *
155
- * `ddog_ffe_evaluation_context_drop` must be called on the result value to free resources.
156
- *
157
- * # Safety
158
- * - `targeting_key` must be a valid C string or NULL.
159
- * - `attributes` must point to a valid array of valid `AttributePair` structs (can be null if
160
- * `attributes_count` is 0)
161
- */
162
- DDOG_CHECK_RETURN
163
- ddog_ffe_Handle_EvaluationContext ddog_ffe_evaluation_context_new(const char *targeting_key,
164
- const struct ddog_ffe_AttributePair *attributes,
165
- uintptr_t attributes_count);
166
-
167
- /**
168
- * Frees an EvaluationContext
169
- *
170
- * # Safety
171
- * `context` must be a valid EvaluationContext handle created by `ddog_ffe_evaluation_context_new`
172
- */
173
- void ddog_ffe_evaluation_context_drop(ddog_ffe_Handle_EvaluationContext *context);
174
-
175
- #ifdef __cplusplus
176
- } // extern "C"
177
- #endif // __cplusplus
178
-
179
- #endif /* DDOG_FFE_H */
@@ -1,115 +0,0 @@
1
- // Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
-
5
- #ifndef DDOG_LIBRARY_CONFIG_H
6
- #define DDOG_LIBRARY_CONFIG_H
7
-
8
- #pragma once
9
-
10
- #include "common.h"
11
-
12
- #ifdef __cplusplus
13
- extern "C" {
14
- #endif // __cplusplus
15
-
16
- struct ddog_Configurator *ddog_library_configurator_new(bool debug_logs, ddog_CharSlice language);
17
-
18
- void ddog_library_configurator_with_local_path(struct ddog_Configurator *c,
19
- struct ddog_CStr local_path);
20
-
21
- void ddog_library_configurator_with_fleet_path(struct ddog_Configurator *c,
22
- struct ddog_CStr local_path);
23
-
24
- void ddog_library_configurator_with_process_info(struct ddog_Configurator *c,
25
- struct ddog_ProcessInfo p);
26
-
27
- void ddog_library_configurator_with_detect_process_info(struct ddog_Configurator *c);
28
-
29
- void ddog_library_configurator_drop(struct ddog_Configurator*);
30
-
31
- struct ddog_LibraryConfigLoggedResult ddog_library_configurator_get(const struct ddog_Configurator *configurator);
32
-
33
- /**
34
- * Returns a static null-terminated string, containing the name of the environment variable
35
- * associated with the library configuration
36
- */
37
- struct ddog_CStr ddog_library_config_source_to_string(enum ddog_LibraryConfigSource name);
38
-
39
- /**
40
- * Returns a static null-terminated string with the path to the managed stable config yaml config
41
- * file
42
- */
43
- struct ddog_CStr ddog_library_config_fleet_stable_config_path(void);
44
-
45
- /**
46
- * Returns a static null-terminated string with the path to the local stable config yaml config
47
- * file
48
- */
49
- struct ddog_CStr ddog_library_config_local_stable_config_path(void);
50
-
51
- void ddog_library_config_drop(struct ddog_LibraryConfigLoggedResult config_result);
52
-
53
- /**
54
- * Allocates and returns a pointer to a new `TracerMetadata` object on the heap.
55
- *
56
- * # Safety
57
- * This function returns a raw pointer. The caller is responsible for calling
58
- * `ddog_tracer_metadata_free` to deallocate the memory.
59
- *
60
- * # Returns
61
- * A non-null pointer to a newly allocated `TracerMetadata` instance.
62
- */
63
- struct ddog_TracerMetadata *ddog_tracer_metadata_new(void);
64
-
65
- /**
66
- * Frees a `TracerMetadata` instance previously allocated with `ddog_tracer_metadata_new`.
67
- *
68
- * # Safety
69
- * - `ptr` must be a pointer previously returned by `ddog_tracer_metadata_new`.
70
- * - Double-freeing or passing an invalid pointer results in undefined behavior.
71
- * - Passing a null pointer is safe and does nothing.
72
- */
73
- void ddog_tracer_metadata_free(struct ddog_TracerMetadata *ptr);
74
-
75
- /**
76
- * Sets a field of the `TracerMetadata` object pointed to by `ptr`.
77
- *
78
- * # Arguments
79
- * - `ptr`: Pointer to a `TracerMetadata` instance.
80
- * - `kind`: The metadata field to set (as defined in `MetadataKind`).
81
- * - `value`: A null-terminated C string representing the value to set.
82
- *
83
- * # Safety
84
- * - Both `ptr` and `value` must be non-null.
85
- * - `value` must point to a valid UTF-8 null-terminated string.
86
- * - If the string is not valid UTF-8, the function does nothing.
87
- */
88
- void ddog_tracer_metadata_set(struct ddog_TracerMetadata *ptr,
89
- enum ddog_MetadataKind kind,
90
- const char *value);
91
-
92
- /**
93
- * Serializes the `TracerMetadata` into a platform-specific memory handle (e.g., memfd on Linux).
94
- * This function also attempts to publish the tracer metadata as an OTel process context
95
- * separately, but will ignore resulting errors.
96
- *
97
- * # Safety
98
- * - `ptr` must be a valid, non-null pointer to a `TracerMetadata`.
99
- *
100
- * # Returns
101
- * - On Linux: a `TracerMemfdHandle` containing a raw file descriptor to a memory file.
102
- * - On unsupported platforms: an error.
103
- * - On failure: propagates any internal errors from the metadata storage process.
104
- *
105
- * # Platform Support
106
- * This function currently only supports Linux via `memfd`. On other platforms,
107
- * it will return an error.
108
- */
109
- struct ddog_Result_TracerMemfdHandle ddog_tracer_metadata_store(struct ddog_TracerMetadata *ptr);
110
-
111
- #ifdef __cplusplus
112
- } // extern "C"
113
- #endif // __cplusplus
114
-
115
- #endif /* DDOG_LIBRARY_CONFIG_H */
@@ -1,86 +0,0 @@
1
- // Copyright 2026-Present Datadog, Inc. https://www.datadoghq.com/
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
-
5
- #ifndef DDOG_OTEL_THREAD_CTX_H
6
- #define DDOG_OTEL_THREAD_CTX_H
7
-
8
- #pragma once
9
-
10
- #include <stdbool.h>
11
- #include <stddef.h>
12
- #include <stdint.h>
13
-
14
- #ifdef __cplusplus
15
- extern "C" {
16
- #endif // __cplusplus
17
-
18
- #if defined(DDOG_OTEL_THREAD_CTX_SANITY_CHECK)
19
- /**
20
- * Verify that this binary was linked with the correct options such that the thread contexts are
21
- * visible to an external reader (typically the eBPF profiler).
22
- *
23
- * Returns `VoidResult::Ok` if all checks pass, or a `VoidResult::Err` with a
24
- * diagnostic message on failure.
25
- */
26
- struct ddog_VoidResult ddog_otel_thread_ctx_sanity_check(void);
27
- #endif
28
-
29
- /**
30
- * Allocate and initialise a new thread context, including its W3C trace-flags byte.
31
- *
32
- * Returns a non-null owned handle that must eventually be released with
33
- * `ddog_otel_thread_ctx_free`.
34
- */
35
- struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_new(const uint8_t (*trace_id)[16],
36
- const uint8_t (*span_id)[8],
37
- uint8_t trace_flags,
38
- const uint8_t (*local_root_span_id)[8]);
39
-
40
- /**
41
- * Free an owned thread context.
42
- *
43
- * # Safety
44
- *
45
- * `ctx` must be a valid non-null pointer obtained from `ddog_otel_thread_ctx_new` or
46
- * `ddog_otel_thread_ctx_detach`, and must not be used after this call. In particular, `ctx`
47
- * must not be currently attached to a thread.
48
- */
49
- void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
50
-
51
- /**
52
- * Attach `ctx` to the current thread. Returns the previously attached context if any, or null
53
- * otherwise.
54
- *
55
- * # Safety
56
- *
57
- * `ctx` must be a valid non-null pointer obtained from this API. Ownership of `ctx` is
58
- * transferred to the TLS slot: the caller must not drop `ctx` while it is still actively
59
- * attached.
60
- */
61
- struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_attach(struct ddog_ThreadContextHandle *ctx);
62
-
63
- /**
64
- * Remove the currently attached context from the TLS slot.
65
- *
66
- * Returns the detached context (caller now owns it and must release it with
67
- * `ddog_otel_thread_ctx_free`), or null if the slot was empty.
68
- */
69
- struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_detach(void);
70
-
71
- /**
72
- * Update the currently attached context in-place, including its W3C trace-flags byte.
73
- *
74
- * If no context is currently attached, one is created and attached, equivalent to calling
75
- * `ddog_otel_thread_ctx_new` followed by `ddog_otel_thread_ctx_attach`.
76
- */
77
- void ddog_otel_thread_ctx_update(const uint8_t (*trace_id)[16],
78
- const uint8_t (*span_id)[8],
79
- uint8_t trace_flags,
80
- const uint8_t (*local_root_span_id)[8]);
81
-
82
- #ifdef __cplusplus
83
- } // extern "C"
84
- #endif // __cplusplus
85
-
86
- #endif /* DDOG_OTEL_THREAD_CTX_H */
@@ -1,15 +0,0 @@
1
- # Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
2
- # SPDX-License-Identifier: Apache-2.0
3
-
4
- prefix=${pcfiledir}/../..
5
- exec_prefix=${prefix}
6
- libdir=${exec_prefix}/lib
7
- includedir=${prefix}/include
8
-
9
- Name: datadog_profiling
10
- Description: Contains common code used to implement Datadog's Continuous Profilers. (Dynamic linking variant, sets rpath)
11
- Version: 40.0.0
12
- Requires:
13
- Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
- Libs.private:
15
- Cflags: -I${includedir}