2424
2525#include "filterx/filterx-object.h"
2626
27+ /* an object representing a (type, value) pair extracted as an rvalue (e.g.
28+ * cannot be assigned to as it is not part of the message) */
29+ typedef struct _FilterXMessageValue
30+ {
31+ FilterXObject super ;
32+ const gchar * repr ;
33+ gsize repr_len ;
34+ LogMessageValueType type ;
35+ gchar * buf ;
36+ } FilterXMessageValue ;
37+
2738FILTERX_DECLARE_TYPE (message_value );
2839
2940FilterXObject * filterx_message_value_new_borrowed (const gchar * repr , gssize repr_len , LogMessageValueType type );
3041FilterXObject * filterx_message_value_new_ref (gchar * repr , gssize repr_len , LogMessageValueType type );
3142FilterXObject * filterx_message_value_new (const gchar * repr , gssize repr_len , LogMessageValueType type );
3243
33- LogMessageValueType filterx_message_value_get_type (FilterXObject * s );
34- const gchar * filterx_message_value_get_value (FilterXObject * s , gsize * len );
35-
3644gboolean filterx_message_value_get_string_ref (FilterXObject * s , const gchar * * value , gsize * len );
3745gboolean filterx_message_value_get_bytes_ref (FilterXObject * s , const gchar * * value , gsize * len );
3846gboolean filterx_message_value_get_protobuf_ref (FilterXObject * s , const gchar * * value , gsize * len );
@@ -46,4 +54,22 @@ gboolean filterx_message_value_get_json(FilterXObject *s, struct json_object **v
4654/* unmarshal a message representation into a FilterXObject */
4755FilterXObject * filterx_unmarshal_repr (const gchar * repr , gssize repr_len , LogMessageValueType t );
4856
57+ static inline LogMessageValueType
58+ filterx_message_value_get_type (FilterXObject * s )
59+ {
60+ FilterXMessageValue * self = (FilterXMessageValue * ) s ;
61+ return self -> type ;
62+ }
63+
64+ static inline const gchar *
65+ filterx_message_value_get_value (FilterXObject * s , gsize * len )
66+ {
67+ FilterXMessageValue * self = (FilterXMessageValue * ) s ;
68+
69+ g_assert (len );
70+ * len = self -> repr_len ;
71+ return self -> repr ;
72+ }
73+
74+
4975#endif
0 commit comments