+static
+bt_message_iterator_class *create_message_iterator_class(void)
+{
+ bt_message_iterator_class *message_iterator_class;
+ bt_message_iterator_class_set_method_status ret;
+
+ message_iterator_class = bt_message_iterator_class_create(
+ component_class_message_iterator_next);
+ if (!message_iterator_class) {
+ BT_LOGE_STR("Cannot create message iterator class.");
+ goto end;
+ }
+
+ ret = bt_message_iterator_class_set_seek_beginning_methods(
+ message_iterator_class, component_class_seek_beginning,
+ component_class_can_seek_beginning);
+ BT_ASSERT(ret == 0);
+ ret = bt_message_iterator_class_set_seek_ns_from_origin_methods(
+ message_iterator_class, component_class_seek_ns_from_origin,
+ component_class_can_seek_ns_from_origin);
+ BT_ASSERT(ret == 0);
+ ret = bt_message_iterator_class_set_initialize_method(
+ message_iterator_class, component_class_message_iterator_init);
+ BT_ASSERT(ret == 0);
+ ret = bt_message_iterator_class_set_finalize_method(
+ message_iterator_class, component_class_message_iterator_finalize);
+ BT_ASSERT(ret == 0);
+
+end:
+ return message_iterator_class;
+}
+