The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DiaColloDB::Temp::Vec - DiaColloDB: temporary mmaped vec() buffers

SYNOPSIS

 ##========================================================================
 ## PRELIMINARIES
 
 use DiaColloDB::Temp::Vec;
 
 ##========================================================================
 ## Constructors etc.
 
 $tmpvec = CLASS->new($size, $bits);
 
 ##========================================================================
 ## Accessors
 
 \$buf = $tmpv->bufr();
 $bits = $tmpv->bits();
 $size = $tmpv->size();
 

DESCRIPTION

DiaColloDB::Temp::Hash provides a simple interface to large temporary vec() scalars mmap()ed to anonymous memory blocks. This is mostly useful to ensure that the memory used by large intermediate vectors is freed when the objects are destroyed, since mmap() bypasses perl's internal memory management.

Globals & Constants

Variable: @ISA

DiaColloDB::Temp::Hash inherits from DiaColloDB::Temp.

Variable: $LOG_DEFAULT

Default log-level for debugging; default=undef: off.

Constructors etc.

new
 $tmpvec = CLASS->new($size, $bits);

Creates a new temporary buffer for use e.g. with vec() suitable for storing $size logical elements of $bits width each.

%opts, %$mmvec:

 (
  log  => $level,      ##-- logging verbosity (default=$LOG_DEFAULT)
  buf  => $buf,        ##-- guts: real underlying mmap()ed buffer data
  size => $size,       ##-- number of logical elements
  bits => $bits,       ##-- number of bits per element
 )

Accessors

bufr
 \$buf = $tmpv->bufr();

Returns reference to the underlying mmap()ed buffer.

bits
 $bits = $tmpv->bits();

Returns number of bits per logical element as specified in constructor.

size
 $size = $tmpv->size();

Returns number of logical elements as specified in constructor.

AUTHOR

Bryan Jurish <moocow@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2015-2020 by Bryan Jurish

This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.

SEE ALSO

DiaColloDB::Temp::Array(3pm), DiaColloDB::Temp::Hash(3pm), DiaColloDB::PDL::MM(3pm), DiaColloDB::Temp(3pm), DiaColloDB(3pm), perl(1), ...