=head1 NAME

Mail::Message::Head::Delayed - a not-read header of a Mail::Message

=head1 INHERITANCE

 Mail::Message::Head::Delayed realizes a Mail::Message::Head::Complete

 Mail::Message::Head::Delayed
   is a Mail::Message::Head
   is a Mail::Reporter

=head1 SYNOPSIS

 my $delayed = Mail::Message::Head::Delayed->new(...)
 $delayed->isa('Mail::Message::Head')  # true
 $delayed->guessBodySize               # undef
 $delayed->isDelayed                   # true

=head1 DESCRIPTION

This object is used as place-holder, to be replaced
by a L<Mail::Message::Head|Mail::Message::Head> when someone accesses the header of a message.

=head1 OVERLOADED

=over 4

=item overload: B<"">()

See L<Mail::Message::Head/"OVERLOADED">

=item overload: B<bool>()

See L<Mail::Message::Head/"OVERLOADED">

=back

=head1 METHODS

=head2 Constructors

=over 4

=item $obj-E<gt>B<build>(FIELDS)

You cannot create a delayed header with fields.

=item Mail::Message::Head::Delayed-E<gt>B<new>(OPTIONS)

See L<Mail::Message::Head/"Constructors">

=back

=head2 The header

=over 4

=item $obj-E<gt>B<isDelayed>()

See L<Mail::Message::Head/"The header">

=item $obj-E<gt>B<isEmpty>()

See L<Mail::Message::Head/"The header">

=item $obj-E<gt>B<isModified>()

See L<Mail::Message::Head/"The header">

=item $obj-E<gt>B<knownNames>()

See L<Mail::Message::Head/"The header">

=item $obj-E<gt>B<message>([MESSAGE])

See L<Mail::Message::Head/"The header">

=item $obj-E<gt>B<modified>([BOOLEAN])

See L<Mail::Message::Head/"The header">

=item $obj-E<gt>B<orderedFields>()

See L<Mail::Message::Head/"The header">

=back

=head2 Access to the header

=over 4

=item $obj-E<gt>B<get>(NAME [,INDEX])

Get the information about the header line NAME.  Realization will
take place.

=item $obj-E<gt>B<study>(NAME [,INDEX])

See L<Mail::Message::Head/"Access to the header">

=back

=head2 About the body

=over 4

=item $obj-E<gt>B<guessBodySize>()

On a delayed head, this retuns C<undef>, because when there is no header
there is also no body.

For messages in directory or network organized folders,
L<Mail::Message::size()|Mail::Message/"The message"> usually will give a figure for the whole message
without much cost.  Subtract a few hundred bytes for the header, and
you will get a good estimate.

=item $obj-E<gt>B<guessTimeStamp>()

Make a guess about when the message was originally posted.
On a delayed head, this returns C<undef>.
For messages in directory or network organized folders,
L<Mail::Message::timestamp()|Mail::Message/"The header"> usually will give a figure without much cost.

=item $obj-E<gt>B<isMultipart>()

See L<Mail::Message::Head/"About the body">

=back

=head2 Internals

=over 4

=item $obj-E<gt>B<addNoRealize>(FIELD)

See L<Mail::Message::Head/"Internals">

=item $obj-E<gt>B<addOrderedFields>(FIELDS)

See L<Mail::Message::Head/"Internals">

=item $obj-E<gt>B<fileLocation>()

See L<Mail::Message::Head/"Internals">

=item $obj-E<gt>B<load>()

See L<Mail::Message::Head/"Internals">

=item $obj-E<gt>B<moveLocation>(DISTANCE)

See L<Mail::Message::Head/"Internals">

=item $obj-E<gt>B<read>(PARSER)

See L<Mail::Message::Head/"Internals">

=item $obj-E<gt>B<setNoRealize>(FIELD)

See L<Mail::Message::Head/"Internals">

=back

=head2 Error handling

=over 4

=item $obj-E<gt>B<AUTOLOAD>()

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<addReport>(OBJECT)

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])

=item Mail::Message::Head::Delayed-E<gt>B<defaultTrace>([LEVEL]|[LOGLEVEL, TRACELEVEL]|[LEVEL, CALLBACK])

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<errors>()

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<log>([LEVEL [,STRINGS]])

=item Mail::Message::Head::Delayed-E<gt>B<log>([LEVEL [,STRINGS]])

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<logPriority>(LEVEL)

=item Mail::Message::Head::Delayed-E<gt>B<logPriority>(LEVEL)

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<logSettings>()

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<notImplemented>()

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<report>([LEVEL])

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<reportAll>([LEVEL])

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<trace>([LEVEL])

See L<Mail::Reporter/"Error handling">

=item $obj-E<gt>B<warnings>()

See L<Mail::Reporter/"Error handling">

=back

=head2 Cleanup

=over 4

=item $obj-E<gt>B<DESTROY>()

See L<Mail::Reporter/"Cleanup">

=item $obj-E<gt>B<inGlobalDestruction>()

See L<Mail::Reporter/"Cleanup">

=back

=head1 DIAGNOSTICS

=over 4

=item Error: Cannot build() a delayed header.

A delayed message header cannot contain any information, so cannot be
build.  You can construct complete or subset headers.

=item Error: Package $package does not implement $method.

Fatal error: the specific package (or one of its superclasses) does not
implement this method where it should. This message means that some other
related classes do implement this method however the class at hand does
not.  Probably you should investigate this and probably inform the author
of the package.

=back

=head1 SEE ALSO

This module is part of Mail-Box distribution version 2.106,
built on August 15, 2012. Website: F<http://perl.overmeer.net/mailbox/>

=head1 LICENSE

Copyrights 2001-2012 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See F<http://www.perl.com/perl/misc/Artistic.html>

