内容

名称

TAP::Parser::Iterator - TAP 源迭代器的基类

版本

版本 3.44

概要

# to subclass:
use TAP::Parser::Iterator ();
use base 'TAP::Parser::Iterator';
sub _initialize {
  # see TAP::Object...
}

sub next_raw { ... }
sub wait     { ... }
sub exit     { ... }

描述

这是一个简单的迭代器基类,它定义了 TAP::Parser 的迭代器 API。迭代器通常由 TAP::Parser::SourceHandler 创建。

方法

类方法

new

创建一个迭代器。由 TAP::Object 提供。

实例方法

next

while ( my $item = $iter->next ) { ... }

当然,遍历它。

next_raw

注意:此方法是抽象的,应该被覆盖。

while ( my $item = $iter->next_raw ) { ... }

遍历原始输入,不应用任何修复以解决奇特的输入语法。

handle_unicode

如有必要,切换输入流以处理 Unicode。这仅对基于 I/O 句柄的流有任何影响。

默认实现什么也不做。

get_select_handles

返回一个文件句柄列表,可以在 select() 调用中上游使用,以指示此 Iterator 已准备就绪。非基于句柄的 Iterator 应该返回一个空列表。

默认实现什么也不做。

wait

注意:此方法是抽象的,应该被覆盖。

my $wait_status = $iter->wait;

返回此 Iterator 的wait状态。

exit

注意:此方法是抽象的,应该被覆盖。

my $wait_status = $iter->exit;

返回此 Iterator 的exit状态。

子类化

有关子类化的概述,请参阅TAP::Parser 中的“SUBCLASSING”

您必须覆盖如上所述的抽象方法。

示例

TAP::Parser::Iterator::Array 可能是最容易遵循的示例。在这里重复它没有多大意义。

另请参见

TAP::ObjectTAP::ParserTAP::Parser::Iterator::ArrayTAP::Parser::Iterator::StreamTAP::Parser::Iterator::Process