actions: implement is_equal
[lttng-tools.git] / src / common / actions / notify.c
index 00d1a0ef4e0e9828f0a55d150fb408e55b843a57..d03bacb2ebf16b7fcc4b97ca061c1e71977bc8a1 100644 (file)
@@ -23,6 +23,14 @@ int lttng_action_notify_serialize(struct lttng_action *action,
        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_buffer(
+               const struct lttng_buffer_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.024358 seconds and 5 git commands to generate.