# Copyrights 2001-2020 by [Mark Overmeer]. # For other contributors see ChangeLog. # See the manual pages for details on the licensing terms. # Pod stripped from pm file by OODoc 2.02. # This code is part of distribution Mail-Box. Meta-POD processed with # OODoc into POD and HTML manual-pages. See README.md # Copyright Mark Overmeer. Licensed under the same terms as Perl itself. package Mail::Box::Net::Message; use vars '$VERSION'; $VERSION = '3.009'; use base 'Mail::Box::Message'; use strict; use warnings; use File::Copy; use Carp; sub init($) { my ($self, $args) = @_; $self->SUPER::init($args); $self->unique($args->{unique}); $self; } #------------------------------------------- sub unique(;$) { my $self = shift; @_ ? $self->{MBNM_unique} = shift : $self->{MBNM_unique}; } #------------------------------------------- #------------------------------------------- sub loadHead() { my $self = shift; my $head = $self->head; return $head unless $head->isDelayed; my $folder = $self->folder; $folder->lazyPermitted(1); my $parser = $self->parser or return; $self->readFromParser($parser); $folder->lazyPermitted(0); $self->log(PROGRESS => 'Loaded delayed head.'); $self->head; } #------------------------------------------- sub loadBody() { my $self = shift; my $body = $self->body; return $body unless $body->isDelayed; my $head = $self->head; my $parser = $self->parser or return; if($head->isDelayed) { $head = $self->readHead($parser); if(defined $head) { $self->log(PROGRESS => 'Loaded delayed head.'); $self->head($head); } else { $self->log(ERROR => 'Unable to read delayed head.'); return; } } else { my ($begin, $end) = $body->fileLocation; $parser->filePosition($begin); } my $newbody = $self->readBody($parser, $head); unless(defined $newbody) { $self->log(ERROR => 'Unable to read delayed body.'); return; } $self->log(PROGRESS => 'Loaded delayed body.'); $self->storeBody($newbody->contentInfoFrom($head)); } #------------------------------------------- 1;