Net::SSH::Perl::Comp.3pm

Langue: en

Version: 2001-04-18 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Net::SSH::Perl::Comp - Compression/Decompression base class

SYNOPSIS

     use Net::SSH::Perl::Comp;
     my $comp = Net::SSH::Perl::Comp->new( $comp_type );
     $comp->compress($data);
 
 

DESCRIPTION

Net::SSH::Perl::Comp is a base class for compression/decompression classes. Currently the only such class is the Zlib implementation (using Compress::Zlib), which is the class Net::SSH::Perl::Comp::Zlib.

Each compression object generally has its own internal ``state''; this state changes when you compress or decompress data. The SSH protocol dictates that you must have two separate objects to compress and decompress data: one for compression, one for decompression. So, for example, you would create two Net::SSH::Perl::Comp objects:

     my $in = Net::SSH::Perl::Comp->new('Zlib');
     my $inflated = $in->decompress($data);
 
     my $out = Net::SSH::Perl::Comp->new('Zlib');
     my $deflated = $out->compress($data);
 
 

USAGE

$comp = Net::SSH::Perl::Comp->new( $comp_type [, @args ] )

Constructs a new compression object of compression type $comp_type and returns that object.

If @args are provided, the class's init method is called with those arguments, for any post-creation initialization.

$comp->init($level)

Initializes $comp and sets the compression level to $level. This method will be called automatically from new if you've provided @args to new. So, for example, you could write:
     my $comp = Net::SSH::Perl::Comp->new('Zlib', 5);
 
 

To create a new Zlib compression object and initialize its compression level to 5.

$comp->compress( $data )

Compresses $data using the underlying compression mechanism; returns the compressed data.

$comp->decompress( $data )

Decompresses $data using the underlying decompression mechanism; returns the decompressed data.

$comp->enable

``Enables'' the compression object. This is useful in the context of the key exchange (Kex) classes, which create a new compression object during key negotiation, but don't actually turn it on (``enable'' it) until receiving/sending the SSH2_MSG_NEWKEYS message.

Net::SSH::Perl::Comp objects (and subclasses) are disabled by default.

$comp->enabled

Returns the state of the ``enabled'' flag, ie. whether the compression object is ``turned on''.

This is used by Net::SSH::Perl::Packet when determining whether data it receives/sends to the server should be decompressed/compressed, respectively.

AUTHOR & COPYRIGHTS

Please see the Net::SSH::Perl manpage for author, copyright, and license information.