X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fevent-rule%2Fevent-rule.c;h=2a84a1328ca577e668e15dfccbce3768e8d70315;hp=b4225f8674f37595f58bf72757060de1c01d71ad;hb=0f7c296359bf90005e1dadf2d7a02a4b223a8031;hpb=1575be4a0f558cd7bb6e5d0a3e9410c4640c9ee5 diff --git a/src/common/event-rule/event-rule.c b/src/common/event-rule/event-rule.c index b4225f867..2a84a1328 100644 --- a/src/common/event-rule/event-rule.c +++ b/src/common/event-rule/event-rule.c @@ -8,19 +8,20 @@ #include #include -#include -#include -#include #include #include +#include +#include +#include +#include #include +#include #include #include -#include -#include -#include #include #include +#include +#include #include #include @@ -361,3 +362,41 @@ unsigned long lttng_event_rule_hash(const struct lttng_event_rule *rule) assert(rule->hash); return rule->hash(rule); } + +LTTNG_HIDDEN +enum lttng_error_code lttng_event_rule_mi_serialize( + const struct lttng_event_rule *rule, struct mi_writer *writer) +{ + int ret; + enum lttng_error_code ret_code; + + assert(rule); + assert(writer); + assert(rule->mi_serialize); + + /* Open event rule element. */ + ret = mi_lttng_writer_open_element(writer, mi_lttng_element_event_rule); + if (ret) { + goto mi_error; + } + + /* Serialize underlying event rule. */ + ret_code = rule->mi_serialize(rule, writer); + if (ret_code != LTTNG_OK) { + goto end; + } + + /* Close event rule element. */ + ret = mi_lttng_writer_close_element(writer); + if (ret) { + goto mi_error; + } + + ret_code = LTTNG_OK; + goto end; + +mi_error: + ret_code = LTTNG_ERR_MI_IO_FAIL; +end: + return ret_code; +}