*/
+/**
+ * @enum LttvStructType
+ * @brief The lttv structures
+ *
+ * the LttvStructType enumerates
+ * the possible structures for the
+ * lttv core filter
+ */
+enum _LttvStructType {
+ LTTV_FILTER_TRACE,
+ LTTV_FILTER_TRACESET,
+ LTTV_FILTER_TRACEFILE,
+ LTTV_FILTER_EVENT,
+ LTTV_FILTER_STATE
+} LttvStructType;
+
/**
* @enum LttvFieldType
- * @brief Structures and their fields
+ * @brief Possible fields for the structures
*
* the LttvFieldType enum consists on
* all the hardcoded structures and
* filters can be applied.
*/
enum _LttvFieldType {
- LTTV_FILTER_TRACE,
- LTTV_FILTER_TRACESET,
- LTTV_FILTER_TRACEFILE,
- LTTV_FILTER_STATE,
- LTTV_FILTER_EVENT,
LTTV_FILTER_TRACE_NAME, /** trace.name (char*) */
LTTV_FILTER_TRACEFILE_NAME, /** tracefile.name (char*) */
LTTV_FILTER_STATE_PID, /** state.pid (guint) */
gboolean assign_operator(LttvSimpleExpression* se, LttvExpressionOp op);
-gboolean parse_simple_expression(GString* expression);
-
-void lttv_filter_append_expression(LttvFilter* filter, char *expression);
-void lttv_filter_clear_expression(LttvFilter* filter);
/*
* Logical operators functions
void lttv_filter_destroy(LttvFilter* filter);
+void lttv_filter_append_expression(LttvFilter* filter, char *expression);
+
+void lttv_filter_clear_expression(LttvFilter* filter);
+
/* LttvFilterTree */
LttvFilterTree* lttv_filter_tree_new();
void lttv_filter_tree_destroy(LttvFilterTree* tree);
+gboolean lttv_filter_tree_parse(
+ LttvFilterTree* t,
+ LttEvent* event,
+ LttTracefile* tracefile,
+ LttTrace* trace,
+ LttvProcessState* state);
/*
* Hook functions
gboolean lttv_filter_event(LttvFilter *filter, LttEvent *event);
+/*
+ * Debug functions
+ */
+void lttv_print_tree(LttvFilterTree* t);
+
#endif // FILTER_H