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

NAME

DiaColloDB::EnumFile::FixedMap - diachronic collocation db, symbol<->integer enum, fixed-length symbols, mmap

ALIASES

DiaColloDB::EnumFile::FixedMap
DiaColloDB::EnumFile::FixedLen::MMap

DESCRIPTION

DiaColloDB::EnumFile::FixedMap (alias DiaColloDB::EnumFile::FixedLen::MMap) uses the File::Map module to provide a fast mmap()-based interface to the fixed-length-symbol<->integer mapping files used by DiaColloDB::EnumFile, from which it inherits.

Constructors etc.

new
 $enum = CLASS_OR_OBJECT->new(%args);

%args, object structure:

 ##-- EnumFile: basic options
 base => $base,       ##-- database basename; use files "${base}.fsx", "${base}.fix", "${base}.hdr"
 perms => $perms,     ##-- default: 0666 & ~umask
 flags => $flags,     ##-- default: 'r'
 pack_i => $pack_i,   ##-- integer pack template (default='N')
 #pack_o => $pack_o,   ##-- file offset pack template (default='N') ; OVERRIDE/FixedLen: unused
 #pack_l => $pack_l,   ##-- string-length pack template (default='n'); OVERRIDE/FixedLen: unused
 pack_s => $pack_s,   ##-- string pack template for text i/o; OVERRIDE:REQUIRED (default='Nn')
 size => $size,       ##-- number of mapped symbols, like scalar(@i2s)
 ##
 ##-- EnumFile: in-memory construction
 s2i => \%s2i,        ##-- maps symbols to integers
 i2s => \@i2s,        ##-- maps integers to symbols
 dirty => $bool,      ##-- true if in-memory structures are not in-sync with file data
 loaded => $bool,     ##-- true if file data has been loaded to memory
 ##
 ##-- EnumFile: pack lengths (after open())
 len_i => $len_i,     ##-- packsize($pack_i)
 #len_o => $len_o,     ##-- packsize($pack_o) ; OVERRIDE/FixedLen: unused
 #len_l => $len_l,     ##-- packsize($pack_l) ; OVERRIDE/FixedLen: unused
 len_s => $len_s,     ##-- packsize($pack_s); OVERRIDE/FixedLen: new
 len_sx => $len_sx,   ##-- $len_s + $len_i ; OVERRIDE/FixedLen: new value
 ##
 ##-- EnumFile: filehandles (after open())
 #sfh  => $sfh,        ##-- $base.s  : OVERRIDE/FixedLen: unused
 ixfh => $ixfh,       ##-- $base.fix : [$i] => pack("${pack_s}",          $s_with_id_i) : OVERRIDE/FixedLen: new extension, format
 sxfh => $sxfh,       ##-- $base.fsx : [$j] => pack("${pack_s}${pack_i}", $s_with_sortorder_j_and_id_i, $i) : OVERRIDE/FixedLen: new extension, format
 ##
 ##-- FixedMap: buffers
 #sbufr  => \$sbuf,     ##-- mmap $base.s   # OVERRIDE/FixedMap: unused
 ixbufr => \$ixbuf,    ##-- mmap $base.fix  # OVERRIDE/FixedMap: new format
 sxbufr => \$sxbuf,    ##-- mmap $base.fsx  # OVERRIDE/FixedMap: new format

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::EnumFile::FixedLen(3pm), DiaColloDB::EnumFile(3pm), DiaColloDB(3pm), perl(1), ...