libdatadog 6.0.0.1.0-x86_64-linux → 7.0.0.1.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/lib/libdatadog.rb +40 -16
  4. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +15459 -6284
  5. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  6. data/vendor/libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +895 -0
  7. data/vendor/{libdatadog-6.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/common.h +135 -20
  8. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +54 -38
  9. data/vendor/libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +290 -0
  10. data/vendor/libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +2 -4
  12. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +15459 -6284
  13. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  14. data/vendor/libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +895 -0
  15. data/vendor/{libdatadog-6.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +135 -20
  16. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h +54 -38
  17. data/vendor/libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +290 -0
  18. data/vendor/libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  19. data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +2 -4
  20. metadata +22 -18
  21. data/vendor/libdatadog-6.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  22. data/vendor/libdatadog-6.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  23. /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  24. /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  25. /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  26. /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
@@ -1,5 +1,6 @@
1
- // Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
2
- // This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021-Present Datadog, Inc.
1
+ // Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
3
4
 
4
5
  #ifndef DDOG_COMMON_H
5
6
  #define DDOG_COMMON_H
@@ -10,13 +11,11 @@
10
11
  #include <stddef.h>
11
12
  #include <stdint.h>
12
13
 
13
- #if defined(_MSC_VER)
14
- #define DDOG_CHARSLICE_C(string) \
15
- /* NOTE: Compilation fails if you pass in a char* instead of a literal */ {.ptr = "" string, .len = sizeof(string) - 1}
16
- #else
17
14
  #define DDOG_CHARSLICE_C(string) \
18
15
  /* NOTE: Compilation fails if you pass in a char* instead of a literal */ ((ddog_CharSlice){ .ptr = "" string, .len = sizeof(string) - 1 })
19
- #endif
16
+
17
+ #define DDOG_CHARSLICE_C_BARE(string) \
18
+ /* NOTE: Compilation fails if you pass in a char* instead of a literal */ { .ptr = "" string, .len = sizeof(string) - 1 }
20
19
 
21
20
  #if defined __GNUC__
22
21
  # define DDOG_GNUC_VERSION(major) __GNUC__ >= major
@@ -116,10 +115,10 @@ typedef struct ddog_Vec_Tag_ParseResult {
116
115
  typedef enum ddog_prof_CrashtrackerResolveFrames {
117
116
  DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_NEVER,
118
117
  /**
119
- * Resolving frames is experimental, and can fail/crash
118
+ * Resolving frames in process is experimental, and can fail/crash
120
119
  */
121
120
  DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_EXPERIMENTAL_IN_PROCESS,
122
- DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_EXPERIMENTAL_IN_RECEIVER,
121
+ DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_IN_RECEIVER,
123
122
  } ddog_prof_CrashtrackerResolveFrames;
124
123
 
125
124
  /**
@@ -177,32 +176,36 @@ typedef struct ddog_prof_Profile_Result {
177
176
  };
178
177
  } ddog_prof_Profile_Result;
179
178
 
180
- typedef enum ddog_Endpoint_Tag {
181
- DDOG_ENDPOINT_AGENT,
182
- DDOG_ENDPOINT_AGENTLESS,
183
- } ddog_Endpoint_Tag;
179
+ typedef enum ddog_prof_Endpoint_Tag {
180
+ DDOG_PROF_ENDPOINT_AGENT,
181
+ DDOG_PROF_ENDPOINT_AGENTLESS,
182
+ } ddog_prof_Endpoint_Tag;
184
183
 
185
- typedef struct ddog_Endpoint_ddog_prof_Agentless_Body {
184
+ typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
186
185
  ddog_CharSlice _0;
187
186
  ddog_CharSlice _1;
188
- } ddog_Endpoint_ddog_prof_Agentless_Body;
187
+ } ddog_prof_Endpoint_ddog_prof_Agentless_Body;
189
188
 
190
- typedef struct ddog_Endpoint {
191
- ddog_Endpoint_Tag tag;
189
+ typedef struct ddog_prof_Endpoint {
190
+ ddog_prof_Endpoint_Tag tag;
192
191
  union {
193
192
  struct {
194
193
  ddog_CharSlice agent;
195
194
  };
196
- ddog_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
195
+ ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
197
196
  };
198
- } ddog_Endpoint;
197
+ } ddog_prof_Endpoint;
199
198
 
200
199
  typedef struct ddog_prof_CrashtrackerConfiguration {
200
+ /**
201
+ * Should the crashtracker attempt to collect a stacktrace for the crash
202
+ */
203
+ bool collect_stacktrace;
201
204
  bool create_alt_stack;
202
205
  /**
203
206
  * The endpoint to send the crash repor to (can be a file://)
204
207
  */
205
- struct ddog_Endpoint endpoint;
208
+ struct ddog_prof_Endpoint endpoint;
206
209
  /**
207
210
  * Optional filename to forward stderr to (useful for logging/debugging)
208
211
  */
@@ -551,6 +554,114 @@ typedef struct ddog_prof_Profile_SerializeResult {
551
554
  };
552
555
  } ddog_prof_Profile_SerializeResult;
553
556
 
557
+ typedef enum ddog_ConfigurationOrigin {
558
+ DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
559
+ DDOG_CONFIGURATION_ORIGIN_CODE,
560
+ DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
561
+ DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
562
+ DDOG_CONFIGURATION_ORIGIN_DEFAULT,
563
+ } ddog_ConfigurationOrigin;
564
+
565
+ typedef enum ddog_LogLevel {
566
+ DDOG_LOG_LEVEL_ERROR,
567
+ DDOG_LOG_LEVEL_WARN,
568
+ DDOG_LOG_LEVEL_DEBUG,
569
+ } ddog_LogLevel;
570
+
571
+ typedef enum ddog_MetricNamespace {
572
+ DDOG_METRIC_NAMESPACE_TRACERS,
573
+ DDOG_METRIC_NAMESPACE_PROFILERS,
574
+ DDOG_METRIC_NAMESPACE_RUM,
575
+ DDOG_METRIC_NAMESPACE_APPSEC,
576
+ DDOG_METRIC_NAMESPACE_IDE_PLUGINS,
577
+ DDOG_METRIC_NAMESPACE_LIVE_DEBUGGER,
578
+ DDOG_METRIC_NAMESPACE_IAST,
579
+ DDOG_METRIC_NAMESPACE_GENERAL,
580
+ DDOG_METRIC_NAMESPACE_TELEMETRY,
581
+ DDOG_METRIC_NAMESPACE_APM,
582
+ DDOG_METRIC_NAMESPACE_SIDECAR,
583
+ } ddog_MetricNamespace;
584
+
585
+ typedef enum ddog_MetricType {
586
+ DDOG_METRIC_TYPE_GAUGE,
587
+ DDOG_METRIC_TYPE_COUNT,
588
+ DDOG_METRIC_TYPE_DISTRIBUTION,
589
+ } ddog_MetricType;
590
+
591
+ typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
592
+ DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
593
+ } ddog_TelemetryWorkerBuilderBoolProperty;
594
+
595
+ typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
596
+ DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
597
+ } ddog_TelemetryWorkerBuilderEndpointProperty;
598
+
599
+ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
600
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_SERVICE_VERSION,
601
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_ENV,
602
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_NAME,
603
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_VERSION,
604
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_PATCHES,
605
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_CONTAINER_ID,
606
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_OS,
607
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_NAME,
608
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
609
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
610
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
611
+ } ddog_TelemetryWorkerBuilderStrProperty;
612
+
613
+ typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
614
+
615
+ /**
616
+ * TelemetryWorkerHandle is a handle which allows interactions with the telemetry worker.
617
+ * The handle is safe to use across threads.
618
+ *
619
+ * The worker won't send data to the agent until you call `TelemetryWorkerHandle::send_start`
620
+ *
621
+ * To stop the worker, call `TelemetryWorkerHandle::send_stop` which trigger flush aynchronously
622
+ * then `TelemetryWorkerHandle::wait_for_shutdown`
623
+ */
624
+ typedef struct ddog_TelemetryWorkerHandle ddog_TelemetryWorkerHandle;
625
+
626
+ typedef enum ddog_Option_VecU8_Tag {
627
+ DDOG_OPTION_VEC_U8_SOME_VEC_U8,
628
+ DDOG_OPTION_VEC_U8_NONE_VEC_U8,
629
+ } ddog_Option_VecU8_Tag;
630
+
631
+ typedef struct ddog_Option_VecU8 {
632
+ ddog_Option_VecU8_Tag tag;
633
+ union {
634
+ struct {
635
+ struct ddog_Vec_U8 some;
636
+ };
637
+ };
638
+ } ddog_Option_VecU8;
639
+
640
+ typedef struct ddog_Option_VecU8 ddog_MaybeError;
641
+
642
+ typedef enum ddog_Option_Bool_Tag {
643
+ DDOG_OPTION_BOOL_SOME_BOOL,
644
+ DDOG_OPTION_BOOL_NONE_BOOL,
645
+ } ddog_Option_Bool_Tag;
646
+
647
+ typedef struct ddog_Option_Bool {
648
+ ddog_Option_Bool_Tag tag;
649
+ union {
650
+ struct {
651
+ bool some;
652
+ };
653
+ };
654
+ } ddog_Option_Bool;
655
+
656
+ typedef struct ddog_ContextKey {
657
+ uint32_t _0;
658
+ enum ddog_MetricType _1;
659
+ } ddog_ContextKey;
660
+
661
+ #ifdef __cplusplus
662
+ extern "C" {
663
+ #endif // __cplusplus
664
+
554
665
  /**
555
666
  * # Safety
556
667
  * Only pass null or a valid reference to a `ddog_Error`.
@@ -602,4 +713,8 @@ struct ddog_Vec_Tag_PushResult ddog_Vec_Tag_push(struct ddog_Vec_Tag *vec,
602
713
  */
603
714
  DDOG_CHECK_RETURN struct ddog_Vec_Tag_ParseResult ddog_Vec_Tag_parse(ddog_CharSlice string);
604
715
 
716
+ #ifdef __cplusplus
717
+ } // extern "C"
718
+ #endif // __cplusplus
719
+
605
720
  #endif /* DDOG_COMMON_H */
@@ -1,5 +1,6 @@
1
- // Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
2
- // This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021-Present Datadog, Inc.
1
+ // Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
3
4
 
4
5
  #ifndef DDOG_PROFILING_H
5
6
  #define DDOG_PROFILING_H
@@ -11,22 +12,26 @@
11
12
  #include <stdint.h>
12
13
  #include "common.h"
13
14
 
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif // __cplusplus
18
+
14
19
  DDOG_CHECK_RETURN
15
- struct ddog_prof_Profile_Result ddog_prof_crashtracker_begin_profiling_op(enum ddog_prof_ProfilingOpTypes op);
20
+ struct ddog_prof_Profile_Result ddog_prof_Crashtracker_begin_profiling_op(enum ddog_prof_ProfilingOpTypes op);
16
21
 
17
22
  DDOG_CHECK_RETURN
18
- struct ddog_prof_Profile_Result ddog_prof_crashtracker_end_profiling_op(enum ddog_prof_ProfilingOpTypes op);
23
+ struct ddog_prof_Profile_Result ddog_prof_Crashtracker_end_profiling_op(enum ddog_prof_ProfilingOpTypes op);
19
24
 
20
- DDOG_CHECK_RETURN struct ddog_prof_Profile_Result ddog_prof_crashtracker_shutdown(void);
25
+ DDOG_CHECK_RETURN struct ddog_prof_Profile_Result ddog_prof_Crashtracker_shutdown(void);
21
26
 
22
27
  DDOG_CHECK_RETURN
23
- struct ddog_prof_Profile_Result ddog_prof_crashtracker_update_on_fork(struct ddog_prof_CrashtrackerConfiguration config,
28
+ struct ddog_prof_Profile_Result ddog_prof_Crashtracker_update_on_fork(struct ddog_prof_CrashtrackerConfiguration config,
24
29
  struct ddog_prof_CrashtrackerMetadata metadata);
25
30
 
26
- DDOG_CHECK_RETURN struct ddog_prof_Profile_Result ddog_prof_crashtracker_receiver_entry_point(void);
31
+ DDOG_CHECK_RETURN struct ddog_prof_Profile_Result ddog_prof_Crashtracker_receiver_entry_point(void);
27
32
 
28
33
  DDOG_CHECK_RETURN
29
- struct ddog_prof_Profile_Result ddog_prof_crashtracker_init(struct ddog_prof_CrashtrackerConfiguration config,
34
+ struct ddog_prof_Profile_Result ddog_prof_Crashtracker_init(struct ddog_prof_CrashtrackerConfiguration config,
30
35
  struct ddog_prof_CrashtrackerMetadata metadata);
31
36
 
32
37
  DDOG_CHECK_RETURN struct ddog_prof_Exporter_Slice_File ddog_prof_Exporter_Slice_File_empty(void);
@@ -36,7 +41,7 @@ DDOG_CHECK_RETURN struct ddog_prof_Exporter_Slice_File ddog_prof_Exporter_Slice_
36
41
  * # Arguments
37
42
  * * `base_url` - Contains a URL with scheme, host, and port e.g. "https://agent:8126/".
38
43
  */
39
- struct ddog_Endpoint ddog_Endpoint_agent(ddog_CharSlice base_url);
44
+ struct ddog_prof_Endpoint ddog_prof_Endpoint_agent(ddog_CharSlice base_url);
40
45
 
41
46
  /**
42
47
  * Creates an endpoint that uses the Datadog intake directly aka agentless.
@@ -44,18 +49,21 @@ struct ddog_Endpoint ddog_Endpoint_agent(ddog_CharSlice base_url);
44
49
  * * `site` - Contains a host and port e.g. "datadoghq.com".
45
50
  * * `api_key` - Contains the Datadog API key.
46
51
  */
47
- struct ddog_Endpoint ddog_Endpoint_agentless(ddog_CharSlice site, ddog_CharSlice api_key);
52
+ struct ddog_prof_Endpoint ddog_prof_Endpoint_agentless(ddog_CharSlice site, ddog_CharSlice api_key);
48
53
 
49
54
  /**
50
55
  * Creates a new exporter to be used to report profiling data.
51
56
  * # Arguments
52
- * * `profiling_library_name` - Profiling library name, usually dd-trace-something, e.g. "dd-trace-rb". See
53
- * https://datadoghq.atlassian.net/wiki/spaces/PROF/pages/1538884229/Client#Header-values (Datadog internal link)
57
+ * * `profiling_library_name` - Profiling library name, usually dd-trace-something, e.g.
58
+ * "dd-trace-rb". See
59
+ * https://datadoghq.atlassian.net/wiki/spaces/PROF/pages/1538884229/Client#Header-values
60
+ * (Datadog internal link)
54
61
  * for a list of common values.
55
- * * `profliling_library_version` - Version used when publishing the profiling library to a package manager
62
+ * * `profliling_library_version` - Version used when publishing the profiling library to a package
63
+ * manager
56
64
  * * `family` - Profile family, e.g. "ruby"
57
- * * `tags` - Tags to include with every profile reported by this exporter. It's also possible to include
58
- * profile-specific tags, see `additional_tags` on `profile_exporter_build`.
65
+ * * `tags` - Tags to include with every profile reported by this exporter. It's also possible to
66
+ * include profile-specific tags, see `additional_tags` on `profile_exporter_build`.
59
67
  * * `endpoint` - Configuration for reporting data
60
68
  * # Safety
61
69
  * All pointers must refer to valid objects of the correct types.
@@ -65,7 +73,7 @@ struct ddog_prof_Exporter_NewResult ddog_prof_Exporter_new(ddog_CharSlice profil
65
73
  ddog_CharSlice profiling_library_version,
66
74
  ddog_CharSlice family,
67
75
  const struct ddog_Vec_Tag *tags,
68
- struct ddog_Endpoint endpoint);
76
+ struct ddog_prof_Endpoint endpoint);
69
77
 
70
78
  /**
71
79
  * # Safety
@@ -81,8 +89,8 @@ void ddog_prof_Exporter_drop(struct ddog_prof_Exporter *exporter);
81
89
  *
82
90
  * For details on the `optional_internal_metadata_json`, please reference the Datadog-internal
83
91
  * "RFC: Attaching internal metadata to pprof profiles".
84
- * If you use this parameter, please update the RFC with your use-case, so we can keep track of how this
85
- * is getting used.
92
+ * If you use this parameter, please update the RFC with your use-case, so we can keep track of how
93
+ * this is getting used.
86
94
  *
87
95
  * For details on the `optional_info_json`, please reference the Datadog-internal
88
96
  * "RFC: Pprof System Info Support".
@@ -118,9 +126,8 @@ void ddog_prof_Exporter_Request_drop(struct ddog_prof_Exporter_Request **request
118
126
  *
119
127
  * # Arguments
120
128
  * * `exporter` - Borrows the exporter for sending the request.
121
- * * `request` - Takes ownership of the request, replacing it with a null
122
- * pointer. This is why it takes a double-pointer, rather than
123
- * a single one.
129
+ * * `request` - Takes ownership of the request, replacing it with a null pointer. This is why it
130
+ * takes a double-pointer, rather than a single one.
124
131
  * * `cancel` - Borrows the cancel, if any.
125
132
  *
126
133
  * # Safety
@@ -132,10 +139,10 @@ struct ddog_prof_Exporter_SendResult ddog_prof_Exporter_send(struct ddog_prof_Ex
132
139
  const struct ddog_CancellationToken *cancel);
133
140
 
134
141
  /**
135
- * Can be passed as an argument to send and then be used to asynchronously cancel it from a different thread.
142
+ * Can be passed as an argument to send and then be used to asynchronously cancel it from a
143
+ * different thread.
136
144
  */
137
- DDOG_CHECK_RETURN
138
- struct ddog_CancellationToken *ddog_CancellationToken_new(void);
145
+ DDOG_CHECK_RETURN struct ddog_CancellationToken *ddog_CancellationToken_new(void);
139
146
 
140
147
  /**
141
148
  * A cloned CancellationToken is connected to the CancellationToken it was created from.
@@ -156,9 +163,9 @@ struct ddog_CancellationToken *ddog_CancellationToken_new(void);
156
163
  * ddog_CancellationToken_drop(cancel_t2);
157
164
  * ```
158
165
  *
159
- * Without clone, both t1 and t2 would need to synchronize to make sure neither was using the cancel
160
- * before it could be dropped. With clone, there is no need for such synchronization, both threads
161
- * have their own cancel and should drop that cancel after they are done with it.
166
+ * Without clone, both t1 and t2 would need to synchronize to make sure neither was using the
167
+ * cancel before it could be dropped. With clone, there is no need for such synchronization, both
168
+ * threads have their own cancel and should drop that cancel after they are done with it.
162
169
  *
163
170
  * # Safety
164
171
  * If the `token` is non-null, it must point to a valid object.
@@ -188,7 +195,7 @@ void ddog_CancellationToken_drop(struct ddog_CancellationToken *token);
188
195
  * * `sample_types`
189
196
  * * `period` - Optional period of the profile. Passing None/null translates to zero values.
190
197
  * * `start_time` - Optional time the profile started at. Passing None/null will use the current
191
- * time.
198
+ * time.
192
199
  *
193
200
  * # Safety
194
201
  * All slices must be have pointers that are suitably aligned for their type
@@ -274,9 +281,12 @@ struct ddog_prof_Profile_Result ddog_prof_Profile_add_endpoint_count(struct ddog
274
281
  * * `offset_values` - offset of the values
275
282
  * * `label_name` - name of the label used to identify sample(s)
276
283
  * * `label_value` - value of the label used to identify sample(s)
277
- * * `sum_value_offset` - offset of the value used as a sum (compute the average with `count_value_offset`)
278
- * * `count_value_offset` - offset of the value used as a count (compute the average with `sum_value_offset`)
279
- * * `sampling_distance` - this is the threshold for this sampling window. This value must not be equal to 0
284
+ * * `sum_value_offset` - offset of the value used as a sum (compute the average with
285
+ * `count_value_offset`)
286
+ * * `count_value_offset` - offset of the value used as a count (compute the average with
287
+ * `sum_value_offset`)
288
+ * * `sampling_distance` - this is the threshold for this sampling window. This value must not be
289
+ * equal to 0
280
290
  *
281
291
  * # Safety
282
292
  * This function must be called before serialize and must not be called after.
@@ -302,8 +312,10 @@ struct ddog_prof_Profile_Result ddog_prof_Profile_add_upscaling_rule_poisson(str
302
312
  * * `offset_values` - offset of the values
303
313
  * * `label_name` - name of the label used to identify sample(s)
304
314
  * * `label_value` - value of the label used to identify sample(s)
305
- * * `total_sampled` - number of sampled event (found in the pprof). This value must not be equal to 0
306
- * * `total_real` - number of events the profiler actually witnessed. This value must not be equal to 0
315
+ * * `total_sampled` - number of sampled event (found in the pprof). This value must not be equal
316
+ * to 0
317
+ * * `total_real` - number of events the profiler actually witnessed. This value must not be equal
318
+ * to 0
307
319
  *
308
320
  * # Safety
309
321
  * This function must be called before serialize and must not be called after.
@@ -337,12 +349,12 @@ void ddog_prof_EncodedProfile_drop(struct ddog_prof_EncodedProfile *profile);
337
349
  * # Arguments
338
350
  * * `profile` - a reference to the profile being serialized.
339
351
  * * `end_time` - optional end time of the profile. If None/null is passed, the current time will
340
- * be used.
352
+ * be used.
341
353
  * * `duration_nanos` - Optional duration of the profile. Passing None or a negative duration will
342
- * mean the duration will based on the end time minus the start time, but
343
- * under anomalous conditions this may fail as system clocks can be adjusted,
344
- * or the programmer accidentally passed an earlier time. The duration of
345
- * the serialized profile will be set to zero for these cases.
354
+ * mean the duration will based on the end time minus the start time, but under anomalous
355
+ * conditions this may fail as system clocks can be adjusted, or the programmer accidentally
356
+ * passed an earlier time. The duration of the serialized profile will be set to zero for these
357
+ * cases.
346
358
  * * `start_time` - Optional start time for the next profile.
347
359
  *
348
360
  * # Safety
@@ -376,4 +388,8 @@ DDOG_CHECK_RETURN
376
388
  struct ddog_prof_Profile_Result ddog_prof_Profile_reset(struct ddog_prof_Profile *profile,
377
389
  const struct ddog_Timespec *start_time);
378
390
 
391
+ #ifdef __cplusplus
392
+ } // extern "C"
393
+ #endif // __cplusplus
394
+
379
395
  #endif /* DDOG_PROFILING_H */