SoW-2020-0003: Trace Hit Counters
[lttng-tools.git] / include / lttng / log-level-rule.h
1 /*
2 * Copyright (C) 2020 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only
5 *
6 */
7
8 #ifndef LTTNG_LOG_LEVEL_RULE_H
9 #define LTTNG_LOG_LEVEL_RULE_H
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 struct lttng_log_level_rule;
16
17 enum lttng_log_level_rule_type {
18 LTTNG_LOG_LEVEL_RULE_TYPE_UNKNOWN = -1,
19 LTTNG_LOG_LEVEL_RULE_TYPE_EXACTLY = 0,
20 LTTNG_LOG_LEVEL_RULE_TYPE_AT_LEAST_AS_SEVERE_AS = 1,
21 };
22
23 enum lttng_log_level_rule_status {
24 LTTNG_LOG_LEVEL_RULE_STATUS_OK = 0,
25 LTTNG_LOG_LEVEL_RULE_STATUS_ERROR = -1,
26 LTTNG_LOG_LEVEL_RULE_STATUS_INVALID = -3,
27 };
28
29 /*
30 * Get the type of a log level rule.
31 *
32 * Returns the type of a log level rule on success,
33 * LTTNG_LOG_LEVEL_RULE_TYPE_UNKNOWN on error.
34 */
35 extern enum lttng_log_level_rule_type lttng_log_level_rule_get_type(
36 const struct lttng_log_level_rule *rule);
37
38 /*
39 * Create a newly allocated log level rule where a log level must match exactly
40 * the rule to be considered.
41 *
42 * Returns a new log level rule on success, NULL on failure. This log level rule must be
43 * destroyed using lttng_log_level_rule_destroy().
44 */
45 extern struct lttng_log_level_rule *lttng_log_level_rule_exactly_create(
46 int level);
47
48 /*
49 * Get the level property of a log level exactly rule.
50 *
51 * Returns LTTNG_LOG_LEVEL_RULE_STATUS and set the passed level pointer value
52 * on success, LTTNG_LOG_LEVEL_RULE_STATUS if an invalid
53 * parameter is passed.
54 */
55 extern enum lttng_log_level_rule_status lttng_log_level_rule_exactly_get_level(
56 const struct lttng_log_level_rule *rule, int *level);
57
58 /*
59 * Create a newly allocated log level rule where a log level must be at least as
60 * severe as the rule to be considered.
61 *
62 * Returns a new log level rule on success, NULL on failure. This log level rule
63 * must be destroyed using lttng_log_level_rule_destroy().
64 */
65 extern struct lttng_log_level_rule *
66 lttng_log_level_rule_at_least_as_severe_as_create(int level);
67
68 /*
69 * Get the level property of a log level at least as severe rule.
70 *
71 * Returns LTTNG_LOG_LEVEL_RULE_STATUS and set the passed level pointer value
72 * on success, LTTNG_LOG_LEVEL_RULE_STATUS if an invalid
73 * parameter is passed.
74 */
75 extern enum lttng_log_level_rule_status
76 lttng_log_level_rule_at_least_as_severe_as_get_level(
77 const struct lttng_log_level_rule *rule, int *level);
78
79 /*
80 * Destroy (release) a log level rule object.
81 */
82 extern void lttng_log_level_rule_destroy(struct lttng_log_level_rule *log_level_rule);
83
84
85 #ifdef __cplusplus
86 }
87 #endif
88
89 #endif /* LTTNG_LOG_LEVEL_RULE_H */
This page took 0.031724 seconds and 5 git commands to generate.