NAME

Data::BitStream::String - A String implementation of Data::BitStream

SYNOPSIS

use Data::BitStream::String;
my $stream = Data::BitStream::String->new;
$stream->put_gamma($_) for (1 .. 20);
$stream->rewind_for_read;
my @values = $stream->get_gamma(-1);

DESCRIPTION

An implementation of Data::BitStream. See the documentation for that module for many more examples, and Data::BitStream::Base for the API. This document only describes the unique features of this implementation, which is of limited value to people purely using Data::BitStream.

This implementation is very memory inefficient, as it uses a binary string to hold the data, hence uses one byte internally per bit of data. However it is a useful reference implementation, and since most operations use Perl operations it is quite fast.

DATA

_str

A private string holding the data in binary string form.

CLASS METHODS

_strref

Retrieves a reference to the private string.

after erase

Sets the private string to the empty string ''.

read
write
put_unary
get_unary
put_unary1
get_unary1
put_gamma
get_gamma
put_string
read_string
to_string
from_string
to_raw
put_raw

These methods have custom implementations.

ROLES

The following roles are included. Note that Gamma has an inline implementation.

Data::BitStream::Code::Base
Data::BitStream::Code::Delta
Data::BitStream::Code::Omega
Data::BitStream::Code::Levenstein
Data::BitStream::Code::EvenRodeh
Data::BitStream::Code::Fibonacci
Data::BitStream::Code::Golomb
Data::BitStream::Code::Rice
Data::BitStream::Code::GammaGolomb
Data::BitStream::Code::ExponentialGolomb
Data::BitStream::Code::StartStop
Data::BitStream::Code::Baer
Data::BitStream::Code::BoldiVigna
Data::BitStream::Code::ARice
Data::BitStream::Code::Additive
Data::BitStream::Code::Comma
Data::BitStream::Code::Taboo

SEE ALSO

Data::BitStream
Data::BitStream::Base
Data::BitStream::WordVec

AUTHORS

Dana Jacobsen <dana@acm.org>

COPYRIGHT

Copyright 2011-2012 by Dana Jacobsen <dana@acm.org>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.