liblttng-ctl: use lttng_payload for serialize/create_from_buffer
[lttng-tools.git] / src / common / actions / notify.c
index 00d1a0ef4e0e9828f0a55d150fb408e55b843a57..fc7d170c70e8c3ac949c306eb49b267004356855 100644 (file)
@@ -18,11 +18,19 @@ void lttng_action_notify_destroy(struct lttng_action *action)
 
 static
 int lttng_action_notify_serialize(struct lttng_action *action,
-               struct lttng_dynamic_buffer *buf)
+               struct lttng_payload *payload)
 {
        return 0;
 }
 
+static
+bool lttng_action_notify_is_equal(const struct lttng_action *a,
+               const struct lttng_action *b)
+{
+       /* There is no discriminant between notify actions. */
+       return true;
+}
+
 struct lttng_action *lttng_action_notify_create(void)
 {
        struct lttng_action_notify *notify;
@@ -32,9 +40,27 @@ struct lttng_action *lttng_action_notify_create(void)
                goto end;
        }
 
-       notify->parent.type = LTTNG_ACTION_TYPE_NOTIFY;
-       notify->parent.serialize = lttng_action_notify_serialize;
-       notify->parent.destroy = lttng_action_notify_destroy;
+       lttng_action_init(&notify->parent, LTTNG_ACTION_TYPE_NOTIFY, NULL,
+                       lttng_action_notify_serialize,
+                       lttng_action_notify_is_equal,
+                       lttng_action_notify_destroy);
 end:
        return &notify->parent;
 }
+
+ssize_t lttng_action_notify_create_from_payload(
+               struct lttng_payload_view *view,
+               struct lttng_action **action)
+{
+       ssize_t consumed_length;
+
+       *action = lttng_action_notify_create();
+       if (!*action) {
+               consumed_length = -1;
+               goto end;
+       }
+
+       consumed_length = 0;
+end:
+       return consumed_length;
+}
This page took 0.025698 seconds and 4 git commands to generate.