AI-MXNet

 view release on metacpan or  search on metacpan

lib/AI/MXNet/RecordIO.pm  view on Meta::CPAN

method close()
{
    return if not $self->is_open;
    $self->SUPER::close();
    $self->fidx(undef);
}

=head2 seek

    Query current read head position.
=cut

method seek(Int $idx)
{
    assert(not $self->writable);
    my $pos = $self->idx->{$idx};
    check_call(AI::MXNetCAPI::RecordIOReaderSeek($self->handle, $pos));
}

=head2 tell

    Query current write head position.
=cut

method tell()
{
    assert($self->writable);
    return scalar(check_call(AI::MXNetCAPI::RecordIOWriterTell($self->handle)));
}

=head2 read_idx

    Read record with the index.

    Parameters:
    -----------
    $idx
=cut

method read_idx(Int $idx)
{
    $self->seek($idx);
    return $self->read();
}

=head2 write_idx

    Write record with index.

    Parameters:
    -----------
    Int $idx
    Str $buf
=cut

method write_idx(Int $idx, Str $buf)
{
    my $pos = $self->tell();
    $self->write($buf);
    my $f = $self->fidx;
    print $f "$idx\t$pos\n";
    $self->idx->{$idx} = $pos;
    push @{ $self->keys }, $idx;
}

1;



( run in 0.692 second using v1.01-cache-2.11-cpan-39bf76dae61 )