aboutsummaryrefslogtreecommitdiff
path: root/src/mm-serial-parsers.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-serial-parsers.h')
-rw-r--r--src/mm-serial-parsers.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/mm-serial-parsers.h b/src/mm-serial-parsers.h
index 81e7a2d0..641c5e0f 100644
--- a/src/mm-serial-parsers.h
+++ b/src/mm-serial-parsers.h
@@ -18,14 +18,24 @@
#include <glib.h>
-gpointer mm_serial_parser_v1_new (void);
-void mm_serial_parser_v1_set_custom_regex (gpointer data,
- GRegex *successful,
- GRegex *error);
-gboolean mm_serial_parser_v1_parse (gpointer parser,
- GString *response,
- GError **error);
-void mm_serial_parser_v1_destroy (gpointer parser);
-gboolean mm_serial_parser_v1_is_known_error (const GError *error);
+gpointer mm_serial_parser_v1_new (void);
+void mm_serial_parser_v1_set_custom_regex (gpointer data,
+ GRegex *successful,
+ GRegex *error);
+gboolean mm_serial_parser_v1_parse (gpointer parser,
+ GString *response,
+ GError **error);
+void mm_serial_parser_v1_destroy (gpointer parser);
+gboolean mm_serial_parser_v1_is_known_error (const GError *error);
+
+/* Parser filter: when FALSE returned, error should be set. This error will be
+ * reported to the response listener right away. */
+typedef gboolean (* mm_serial_parser_v1_filter_fn) (gpointer data,
+ gpointer user_data,
+ GString *response,
+ GError **error);
+void mm_serial_parser_v1_add_filter (gpointer data,
+ mm_serial_parser_v1_filter_fn callback,
+ gpointer user_data);
#endif /* MM_SERIAL_PARSERS_H */