Commit | Line | Data |
---|---|---|
f2c1f0d4 | 1 | /* |
ab5be9fa MJ |
2 | * Copyright (C) 2019 Jérémie Galarneau <jeremie.galarneau@efficios.com> |
3 | * Copyright (C) 2019 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
f2c1f0d4 | 4 | * |
ab5be9fa | 5 | * SPDX-License-Identifier: LGPL-2.1-only |
f2c1f0d4 | 6 | * |
f2c1f0d4 MD |
7 | */ |
8 | ||
9 | #ifndef LTTNG_CLEAR_HANDLE_H | |
10 | #define LTTNG_CLEAR_HANDLE_H | |
11 | ||
12 | #include <lttng/lttng-error.h> | |
4bd69c5f | 13 | #include <lttng/lttng-export.h> |
f2c1f0d4 MD |
14 | |
15 | #ifdef __cplusplus | |
16 | extern "C" { | |
17 | #endif | |
18 | ||
19 | /* | |
20 | * Handle used to represent a specific instance of session clear | |
21 | * operation. | |
22 | */ | |
23 | struct lttng_clear_handle; | |
24 | ||
25 | /* | |
26 | * Negative values indicate errors. Values >= 0 indicate success. | |
27 | */ | |
28 | enum lttng_clear_handle_status { | |
29 | LTTNG_CLEAR_HANDLE_STATUS_ERROR = -2, | |
30 | LTTNG_CLEAR_HANDLE_STATUS_INVALID = -1, | |
31 | LTTNG_CLEAR_HANDLE_STATUS_OK = 0, | |
32 | LTTNG_CLEAR_HANDLE_STATUS_COMPLETED = 1, | |
33 | LTTNG_CLEAR_HANDLE_STATUS_TIMEOUT = 2, | |
34 | }; | |
35 | ||
36 | /* | |
37 | * Destroy an lttng_clear_handle. | |
38 | * The handle should be discarded after this call. | |
39 | */ | |
4bd69c5f | 40 | LTTNG_EXPORT extern void lttng_clear_handle_destroy(struct lttng_clear_handle *handle); |
f2c1f0d4 MD |
41 | |
42 | /* | |
43 | * Wait for a session clear operation to complete. | |
44 | * | |
45 | * A negative timeout_ms value can be used to wait indefinitely. | |
46 | * | |
47 | * Returns LTTNG_CLEAR_HANDLE_STATUS_COMPLETED if the session clear | |
48 | * operation was completed. LTTNG_CLEAR_HANDLE_STATUS_TIMEOUT is returned | |
49 | * to indicate that the wait timed out. | |
50 | * On error, one of the negative lttng_clear_handle_status is returned. | |
51 | * | |
52 | * Note: This function returning a success status does not mean that | |
53 | * the clear operation itself succeeded; it indicates that the _wait_ | |
54 | * operation completed successfully. | |
55 | */ | |
4bd69c5f | 56 | LTTNG_EXPORT extern enum lttng_clear_handle_status |
28f23191 | 57 | lttng_clear_handle_wait_for_completion(struct lttng_clear_handle *handle, int timeout_ms); |
f2c1f0d4 MD |
58 | |
59 | /* | |
60 | * Get the result of a session clear operation. | |
61 | * | |
62 | * This function must be used on a clear handle which was successfully waited | |
63 | * on. | |
64 | * | |
65 | * Returns LTTNG_CLEAR_HANDLE_STATUS_OK if the result of the session | |
66 | * clear operation could be obtained. Check the value of 'result' to | |
67 | * determine if the session clear operation completed successfully or not. | |
68 | * | |
69 | * On error, one of the negative lttng_clear_handle_status is returned. | |
70 | * Returns LTTNG_CLEAR_HANDLE_STATUS_INVALID if the clear operation | |
71 | * was not waited-on using the handle or if the arguments of the function are | |
72 | * invalid (e.g. NULL). | |
73 | */ | |
4bd69c5f | 74 | LTTNG_EXPORT extern enum lttng_clear_handle_status |
28f23191 JG |
75 | lttng_clear_handle_get_result(const struct lttng_clear_handle *handle, |
76 | enum lttng_error_code *result); | |
316f62af JR |
77 | #ifdef __cplusplus |
78 | } | |
79 | #endif | |
f2c1f0d4 MD |
80 | |
81 | #endif /* LTTNG_CLEAR_HANDLE_H */ |