common: compile libcompat as C++
[lttng-tools.git] / include / lttng / event-expr-internal.h
index 88fa695de9d154882e9a8d44ed5d9865594126df..d40f2fa017f272ec12961e49cda9e59d69a7dd2d 100644 (file)
@@ -8,9 +8,16 @@
 #ifndef LTTNG_EVENT_EXPR_INTERNAL_H
 #define LTTNG_EVENT_EXPR_INTERNAL_H
 
-#include <assert.h>
+#include <common/macros.h>
 #include <lttng/event-expr.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct lttng_bytecode;
+struct mi_writer;
+
 struct lttng_event_expr {
        enum lttng_event_expr_type type;
 };
@@ -47,11 +54,22 @@ struct lttng_event_expr_array_field_element {
 static inline
 bool lttng_event_expr_is_lvalue(const struct lttng_event_expr *expr)
 {
-       assert(expr);
+       LTTNG_ASSERT(expr);
        return expr->type == LTTNG_EVENT_EXPR_TYPE_EVENT_PAYLOAD_FIELD ||
                        expr->type == LTTNG_EVENT_EXPR_TYPE_CHANNEL_CONTEXT_FIELD ||
                        expr->type == LTTNG_EVENT_EXPR_TYPE_APP_SPECIFIC_CONTEXT_FIELD ||
                        expr->type == LTTNG_EVENT_EXPR_TYPE_ARRAY_FIELD_ELEMENT;
 }
 
+int lttng_event_expr_to_bytecode(const struct lttng_event_expr *expr,
+               struct lttng_bytecode **bytecode_out);
+
+enum lttng_error_code lttng_event_expr_mi_serialize(
+               const struct lttng_event_expr *expression,
+               struct mi_writer *writer);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LTTNG_EVENT_EXPR_INTERNAL_H */
This page took 0.024322 seconds and 4 git commands to generate.