\FOT{2}\Seq%
{\def\HeadingLevel%
{0}\def\PageNumberFormat%
{1}\def\PageNumberRestart%
{0}\def\PageNColumns%
{1}\def\PageColumnSep%
{36\p@}\def\PageBalanceColumns%
{0}\def\WritingMode%
{lefttoright}\def\InputWhitespaceTreatment%
{collapse}\def\LeftMargin%
{72\p@}\def\RightMargin%
{72\p@}\def\PageWidth%
{612\p@}\def\PageHeight%
{792\p@}\def\MinLeading%
{2\p@}\def\MinLeadingFactor%
{0}\def\TopMargin%
{72\p@}\def\BottomMargin%
{96\p@}\def\HeaderMargin%
{48\p@}\def\FooterMargin%
{48\p@}}\Node%
{}\Node%
{\def\Element%
{0}}\Seq%
{}\SpS%
{\def\PageNColumns%
{1}\def\PageNumberRestart%
{0}\def\PageNumberFormat%
{1}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\InputWhitespaceTreatment%
{collapse}\def\Quadding%
{start}\def\fSize%
{10\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\fFamName{Times-New-Roman}\def\LineSpacing%
{13\p@}\def\LineSpacingFactor%
{0}}
\SpSOtherBackLeftFooter%
{}
\SpSOtherBackLeftHeader%
{}
\SpSOtherBackCenterFooter%
{}
\SpSOtherBackCenterHeader%
{}
\SpSOtherBackRightFooter%
{\Seq%
{\def\fPosture%
{italic}}\insertPageNumber%
{}\endSeq{}}
\SpSOtherBackRightHeader%
{\Seq%
{\def\fPosture%
{italic}}\Node%
{\def\Element%
{2}\def\ProcessingMode%
{hf-mode}}\Seq%
{}services -\/-\/ Writing PigeonDeliver 2.0 Services\endSeq{}\endNode{}\endSeq{}}
\SpSFirstBackLeftFooter%
{}
\SpSFirstBackLeftHeader%
{}
\SpSFirstBackCenterFooter%
{}
\SpSFirstBackCenterHeader%
{}
\SpSFirstBackRightFooter%
{\Seq%
{\def\fPosture%
{italic}}\insertPageNumber%
{}\endSeq{}}
\SpSFirstBackRightHeader%
{}
\SpSOtherFrontLeftFooter%
{}
\SpSOtherFrontLeftHeader%
{}
\SpSOtherFrontCenterFooter%
{}
\SpSOtherFrontCenterHeader%
{}
\SpSOtherFrontRightFooter%
{\Seq%
{\def\fPosture%
{italic}}\insertPageNumber%
{}\endSeq{}}
\SpSOtherFrontRightHeader%
{\Seq%
{\def\fPosture%
{italic}}\Node%
{\def\Element%
{2}\def\ProcessingMode%
{hf-mode}}\Seq%
{}services -\/-\/ Writing PigeonDeliver 2.0 Services\endSeq{}\endNode{}\endSeq{}}
\SpSFirstFrontLeftFooter%
{}
\SpSFirstFrontLeftHeader%
{}
\SpSFirstFrontCenterFooter%
{}
\SpSFirstFrontCenterHeader%
{}
\SpSFirstFrontRightFooter%
{\Seq%
{\def\fPosture%
{italic}}\insertPageNumber%
{}\endSeq{}}
\SpSFirstFrontRightHeader%
{}\Seq%
{}\Seq%
{}\Seq%
{}\Node%
{\def\Element%
{2}\def\ProcessingMode%
{article-titlepage-recto-mode}}\Par%
{\def\fSize%
{24.883\p@}\def\LineSpacing%
{32.348\p@}\def\LineSpacingFactor%
{0}\def\Quadding%
{center}\def\fFamName{Arial}\def\fWeight%
{bold}\def\sbNom%
{18.662\p@}\def\sbMin%
{18.662\p@}\def\sbMax%
{18.662\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}services -\/-\/ Writing PigeonDeliver 2.0 Services\endPar{}\endNode{}\Seq%
{}\Node%
{\def\Element%
{3}\def\ProcessingMode%
{article-titlepage-recto-mode}}\Seq%
{}\Par%
{\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\Quadding%
{center}\def\fFamName{Arial}\def\fWeight%
{bold}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}Carlo Contavalli\endPar{}\Node%
{\def\Element%
{6}\def\ProcessingMode%
{article-titlepage-recto-mode}}\DisplayGroup%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fSize%
{12\p@}}\Node%
{\def\Element%
{7}\def\ProcessingMode%
{article-titlepage-recto-mode}}\DisplayGroup%
{\def\Quadding%
{center}\def\fFamName{Arial}\def\fWeight%
{bold}\def\fSize%
{12\p@}}\Par%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{8}\def\ProcessingMode%
{titlepage-address-mode}}ccontavalli at masobit.net\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}\endSeq{}\endNode{}\Seq%
{}\Node%
{\def\Element%
{9}\def\ProcessingMode%
{article-titlepage-recto-mode}}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fSize%
{12\p@}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{4.5\p@}\def\saMin%
{4.5\p@}\def\saMax%
{4.5\p@}\def\saConditional%
{1}}Revision History\endPar{}\Table%
{\def\TableWidth%
{full}}\TeXTable%
{420\p@}{3}{lll}%
\Node%
{\def\Element%
{10}\def\ProcessingMode%
{article-titlepage-recto-mode}}\TableRow%
{}\TableCell%
{\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\fSize%
{10\p@}\def\fWeight%
{medium}\def\fFamName{Arial}}Revision \Node%
{\def\Element%
{11}\def\ProcessingMode%
{article-titlepage-recto-mode}}1.0.0\endNode{}\endPar{}\endTableCell{}%
&\TableCell%
{\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\CellBeforeColumnMargin%
{0\p@}\def\ColumnIndex%
{1}}\Par%
{\def\fSize%
{10\p@}\def\fWeight%
{medium}\def\fFamName{Arial}}\Node%
{\def\Element%
{12}\def\ProcessingMode%
{article-titlepage-recto-mode}}2004/08/22\endNode{}\endPar{}\endTableCell{}%
&\TableCell%
{\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\CellBeforeColumnMargin%
{0\p@}\def\ColumnIndex%
{2}}\endTableCell{}%
\endTableRow{}%
\TableRow%
{}\multicolumn%
{3}{l}{\TableCell%
{\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\NColumnsSpanned%
{3}}\Par%
{\def\fSize%
{10\p@}\def\fWeight%
{medium}\def\fFamName{Arial}}\Node%
{\def\Element%
{13}\def\ProcessingMode%
{article-titlepage-recto-mode}}First Document Revision\endNode{}\endPar{}\endTableCell{}%
}%
\endTableRow{}\endNode{}%
\endTeXTable{}%
\endTable{}%
\endSeq{}\endNode{}\Seq%
{}\Node%
{\def\Element%
{14}\def\ProcessingMode%
{article-titlepage-recto-mode}}\DisplayGroup%
{\def\Quadding%
{start}\def\StartIndent%
{65.5\p@}\def\StartIndentFactor%
{0}\def\EndIndent%
{17.5\p@}\def\EndIndentFactor%
{0}\def\fFamName{Times-New-Roman}}\DisplayGroup%
{\def\StartIndent%
{65.5\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{15}\def\ProcessingMode%
{article-titlepage-recto-mode}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}This document describes how to write PigeonDeliver 2.0 Services.
      	Its main purpose is to introduce programmers and users to the structure
	of PigeonDeliver Services. This document will be modified frequently, to reflect
	changes in the PigeonDeliver API. Each version of this document will refer to 
	a particular family of PigeonDeliver releases that will be clearly
	declared at the beginning of the document. This version of the document
	refer to any known PigeonDeliver version.\endPar{}\endNode{}\endDisplayGroup{}\endDisplayGroup{}\endNode{}\endSeq{}\endSeq{}\endSeq{}\endSeq{}\endSeq{}\endSeq{}\Node%
{\def\Element%
{1}}\endNode{}\Node%
{\def\Label%
{bef}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}1. \Node%
{\def\Element%
{17}\def\ProcessingMode%
{title-sosofo-mode}}Before starting\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{17}}\endNode{}\Node%
{\def\Element%
{18}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      This document was written as part of the documentation
      of the PigeonAir Project to provide help and support to 
      users, system administrators or developers.
    \endPar{}\endNode{}\Node%
{\def\Element%
{19}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      While every effort has been made to ensure that the 
      information is accurate at the time of publication,
      this document may contain errors, omissions, incongruences 
      or wrong technical details. No liability for damages
      is accepted by the Author, the publishers or
      any other organization or person providing the information,
      arising from any errors or omissions that may appear,
      however caused.
    \endPar{}\endNode{}\Node%
{\def\Element%
{20}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      In case you find an error, you would like to propose better
      solutions than those discussed in this document or you
      would like to discuss an idea regarding this document
      or its content, we would be glad to hear from you and
      please feel free to contact us by writing to the <\/deliver-\/dev 
      at ml.pigeonair.net>\/ mailing list or by directly 
      contacting one of the authors.
    \endPar{}\endNode{}\Node%
{\def\Element%
{21}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}1.1. \Node%
{\def\Element%
{22}\def\ProcessingMode%
{title-sosofo-mode}}Intended Audience\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{22}}\endNode{}\Node%
{\def\Element%
{23}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        This document is meant to introduce developers to the structure
	of PigeonDeliver services and to provide all the  information
	that may be needed to write a PigeonDeliver service.
      \endPar{}\endNode{}\Node%
{\def\Element%
{24}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        This document assumes you are already familiar with the 
	PigeonDeliver inner workings, installation and configuration,
	and no introductory details will be provided. The reader
	should thus have read all the introductory documents
	available on the internet site.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{25}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}1.2. \Node%
{\def\Element%
{26}\def\ProcessingMode%
{title-sosofo-mode}}Copyright Notice\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{26}}\endNode{}\Node%
{\def\Element%
{27}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        This document was written by Carlo Contavalli <\/ccontavalli at masobit.net>\/ 
        and is thus Copyright (C) Carlo Contavalli 2003, 2004 and the PigeonAir Project.
      \endPar{}\endNode{}\Node%
{\def\Element%
{28}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Permission is granted to copy, distribute and/or modify this document
        under the terms of the GNU Free Documentation License, Version 1.1 or
        any later version published by the Free Software Foundation; with no
        Invariant Sections, no Front-\/Cover Texts and no Back-\/Cover Texts.
      \endPar{}\endNode{}\Node%
{\def\Element%
{29}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Any example of program code available in this document should be
        considered protected by the terms of the GNU General Public License.
      \endPar{}\endNode{}\Node%
{\def\Element%
{30}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        You should have received a copy of the GNU General Public License
        along with this document; if not, write to the Free Software
        Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
      \endPar{}\endNode{}\Node%
{\def\Element%
{31}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Trademarks are owned by their respective owners. 
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Label%
{intro}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}2. \Node%
{\def\Element%
{33}\def\ProcessingMode%
{title-sosofo-mode}}What is a PigeonDeliver Service?\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{33}}\endNode{}\Node%
{\def\Element%
{34}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      A PigeonDeliver Service is a module able to
      handle part of the delivery process of a mail.
    \endPar{}\endNode{}\Node%
{\def\Element%
{35}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      To know more about how the PigeonDeliver 
      handles emails delivery or how Services
      are used by PigeonDeliver, please refer
      to \%TODO\%.
    \endPar{}\endNode{}\Node%
{\def\Element%
{36}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      A PigeonDeliver Service is a C written
      library/program conforming to the structure 
      and rules described in the following sections
      of this document providing the described
      methods or callbacks.
    \endPar{}\endNode{}\Node%
{\def\Element%
{37}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      PigeonDeliver Services are called and 
      used by PigeonDeliver SAPI and PigeonDeliver
      IPC, whose role is to provide a layer of 
      abstraction over a particular mail server or 
      technology for mail delivery.
    \endPar{}\endNode{}\Node%
{\def\Element%
{38}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      All PigeonDeliver SAPI and IPC must
      and do behave as described in the following 
      few sections, where they will simply be referred 
      as ``callers'' of the PigeonDeliver Service.
    \endPar{}\endNode{}\Node%
{\def\Element%
{39}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      To know more about how to port PigeonDeliver
      to different mail servers or on how to write
      PigeonDeliver SAPI or IPC libraries, please
      refer to \%TODO\%.
    \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Label%
{methods}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}3. \Node%
{\def\Element%
{41}\def\ProcessingMode%
{title-sosofo-mode}}Service provided methods\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{41}}\endNode{}\Node%
{\def\Element%
{42}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      A PigeonDeliver Service must be written as
      closely as possible to the specification described
      on this document.
    \endPar{}\endNode{}\Node%
{\def\Element%
{43}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      In particular the caller of the Service will expect
      it to provide some methods that will be used by
      the caller to perform the delivery of the email.
    \endPar{}\endNode{}\Node%
{\def\Element%
{44}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Some of the methods are mandatory, while others
      are not. A mandatory method \Node%
{\def\Element%
{45}}\Seq%
{\def\fPosture%
{italic}}must\endSeq{}\endNode{} 
      be provided by a Service which will be considered
      broken/incompatible/not compliant if not.
    \endPar{}\endNode{}\Node%
{\def\Element%
{46}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Here is the list of methods a Service may/should provide.
      Mandatory methods will be indicated in the description of 
      the method itself
      \Node%
{\def\Element%
{47}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{48}}\Node%
{\def\Element%
{49}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{50}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{51}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{52}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Called when the Service is first loaded. The
	      caller must call this method at least and at most
	      once per process.
	      The caller must also guarantee that in a multithreaded
	      environment, the caller will make use of the \Node%
{\def\Element%
{53}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} 
	      method before spawning threads or performing the
	      required locking.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{54}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	      It should be used by the Service to fetch configuration
	      parameters from the configuration file, initialize
	      static data structures or to prepare other Services
	      to be used.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\Node%
{\def\Element%
{55}}\Node%
{\def\Element%
{56}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{57}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{58}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{59}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Called to cleanup the resources allocated by
	      each call to the \Node%
{\def\Element%
{60}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method. The \Node%
{\def\Element%
{61}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{} method
	      is thus called as many times as the \Node%
{\def\Element%
{62}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} 
	      method.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{63}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	      It should be used to free up memory used
	      to hold configuration variables, close database
	      connections or free up global static structures
	      initialized by the \Node%
{\def\Element%
{64}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method. 
	    \endPar{}\endNode{}\Node%
{\def\Element%
{65}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	      After the \Node%
{\def\Element%
{66}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{} method is called, all the 
	      resources allocated by the Service must have 
	      been freed or returned back to the operating 
	      system. 
	    \endPar{}\endNode{}\Node%
{\def\Element%
{67}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	    Note also that the caller is allowed not to call the \Node%
{\def\Element%
{68}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{}
	    method if the \Node%
{\def\Element%
{69}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method returned a NULL descriptor to
	    hold initialized data, since it is allowed to assume that no initialization
	    was performed at all.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\Node%
{\def\Element%
{70}}\Node%
{\def\Element%
{71}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{72}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{73}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{74}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Called once per caller thread (if the thread 
	    spawns threads) or anyway to initialize one
	    of possibly multiple parallel execution of
	    this same Service.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{75}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	    It should be used to initialize thread or session
	    specific variables, like database connections or
	    memory used by the following methods.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\Node%
{\def\Element%
{76}}\Node%
{\def\Element%
{77}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{78}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{79}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{80}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Called once for each call to the \Node%
{\def\Element%
{81}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method, in order
	    to free up resources allocated by the \Node%
{\def\Element%
{82}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method itself.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{83}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	    After each \Node%
{\def\Element%
{84}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{} call, all memory resources allocated by
	    the corresponding \Node%
{\def\Element%
{85}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method call should have been freed.
	    \endPar{}\endNode{}\Node%
{\def\Element%
{86}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	    Note also that the caller is allowed not to call the done
	    method if the \Node%
{\def\Element%
{87}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method returned a NULL descriptor to
	    hold initialized data, since it is allowed to assume that no 
	    initialization was performed at all.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\Node%
{\def\Element%
{88}}\Node%
{\def\Element%
{89}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{90}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{91}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{92}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Called once at the beginning of the delivery of a single
	      mail.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{93}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	      Should be used to perform checks over the email (to test,
	      for example, if the module is interested in delivering the email),
	      or to prepare resources that will be used during the delivery
	      itself.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\Node%
{\def\Element%
{94}}\Node%
{\def\Element%
{95}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{96}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{97}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{98}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{99}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fPosture%
{italic}}mandatory\endSeq{}\endNode{} Called once per each recipient of a 
	      given mail.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{100}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	      Should be used to deliver the email itself. This method is often
	      referred in other documents as the ``delivery'' method.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\Node%
{\def\Element%
{101}}\Node%
{\def\Element%
{102}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\KeepWithNext%
{1}}\Node%
{\def\Element%
{103}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{}\endPar{}\endNode{}\Node%
{\def\Element%
{104}}\DisplayGroup%
{\def\StartIndent%
{68\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-20\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\FieldWidth%
{20\p@}\def\FieldWidthFactor%
{0}} \endLineField{}\endSeq{}\Node%
{\def\Element%
{105}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Called once after the completion of the delivery of a mail
	      that was previously initialized calling the \Node%
{\def\Element%
{106}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{107}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	      Should be used to free up resources allocated by the \Node%
{\def\Element%
{108}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{}
	      method.
	    \endPar{}\endNode{}\endDisplayGroup{}\endNode{}\endNode{}\endDisplayGroup{}\endNode{}
    \endPar{}\endNode{}\Node%
{\def\Element%
{109}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Please read the following sections for more detailed
      information about the described methods.
    \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Label%
{exec}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}4. \Node%
{\def\Element%
{111}\def\ProcessingMode%
{title-sosofo-mode}}Expected execution paths\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{111}}\endNode{}\Node%
{\def\Element%
{112}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Although callers can make use of Services at their
      wishes as long as they respect the provided specifications,
      all the methods where thought to be used by callers following
      particular execution paths that will be described in the 
      following few sections.
    \endPar{}\endNode{}\Node%
{\def\Element%
{113}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Note that:
      \Node%
{\def\Element%
{114}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{115}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{116}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}error handling has been completely omitted 
		in all examples, since it is discussed in specific
		sections \%TODO\%.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{117}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{118}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}pseudo code is written using something that
		may look like perl or C, which I hope to be clear to the
		reader. Variables like ld1, dd1, id1
		are considered to have already been initialized, while
		variables like \&ld1 or \&dd1 are made available
		to the Service to initialize them.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{119}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{120}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}the reader should not worry about data structures
	 	like load\char95{}data, init\char95{}data or del\char95{}data whose type, kind and
		usage will be explained in the next few sections. 
		Note that they are just placeholders used to make the 
		example clearer. \Node%
{\def\Element%
{121}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fPosture%
{italic}}
		There is no structure named load\char95{}data, init\char95{}data or del\char95{}data
		used by PigeonDeliver!!\endSeq{}\endNode{}\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{122}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{123}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}a regression/compliance testing suite for modules
		is currently being written. All the execution paths described
		below will thus be tested.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{124}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{125}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}Services must behave correctly under any of the 
		described execution paths.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
    \endPar{}\endNode{}\Node%
{\def\Element%
{126}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}4.1. \Node%
{\def\Element%
{127}\def\ProcessingMode%
{title-sosofo-mode}}Single thread\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{127}}\endNode{}\Node%
{\def\Element%
{128}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Using this execution path, the caller will call the
	load method once, exactly as the \Node%
{\def\Element%
{129}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method (and the corresponding
	unload and \Node%
{\def\Element%
{130}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{} methods). The caller will loop over the 
	emails to deliver, calling on each loop the \Node%
{\def\Element%
{131}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{},
	\Node%
{\def\Element%
{132}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{} and \Node%
{\def\Element%
{133}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{} methods, or performing many 
	deliveries at the same time.
      \endPar{}\endNode{}\Node%
{\def\Element%
{134}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Using (a rather ugly and incomprehensible) pseudo code,
	the first case of delivery path may look something like:
\Node%
{\def\Element%
{135}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
caller() \{
  load\char95{}data ld1;
  init\char95{}data id1;
  del\char95{}data dd;
  
  load(\&ld1);
  init(ld1, \&id1);

  foreach email in (emails\char95{}to\char95{}deliver) \{
    \Node%
{\def\Element%
{136}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{}(ld1, id1, \&dd1);
    foreach recipient in (recipients\char95{}of\char95{}email(email)) \{
      \Node%
{\def\Element%
{137}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{}(ld1, id1, dd1, recipient);
    \}
    \Node%
{\def\Element%
{138}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{}(ld1, id1, dd1);
  \}
\}
\endPar{}\endNode{}
      \endPar{}\endNode{}\Node%
{\def\Element%
{139}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        If deliveries are performed parallely, the delivery
	path may look something like:
\Node%
{\def\Element%
{140}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
caller() \{
  load\char95{}data ld1;
  init\char95{}data id1;
  del\char95{}data dd[];
  int i;
  
  load(\&ld1);
  init(ld1, \&id1);

  for(i=0; email=next\char95{}email(emails\char95{}to\char95{}deliver); i++) 
    \Node%
{\def\Element%
{141}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{}(ld1, id1, \&dd[i]);

  go\char95{}to\char95{}firstemail(emails\char95{}to\char95{}deliver);
  for(i=0; email=next\char95{}email(emails\char95{}to\char95{}deliver); i++) \{
    foreach recipient in (recipients\char95{}of\char95{}email(email)) \{
      \Node%
{\def\Element%
{142}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{}(ld1, id1, dd1, recipient);
  \}

  go\char95{}to\char95{}firstemail(emails\char95{}to\char95{}deliver);
  for(i=0; email=next\char95{}email(emails\char95{}to\char95{}deliver); i++) 
    \Node%
{\def\Element%
{143}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{}(ld1, id1, dd[i]);

  done(ld1, id1);
  unload(ld1);
\}
\endPar{}\endNode{}
      \endPar{}\endNode{}\Node%
{\def\Element%
{144}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      	Note that the caller is allowed to also perform
	multiple deliveries at a time by using something
	like:
\Node%
{\def\Element%
{145}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
caller() \{
  load\char95{}data ld1;
  init\char95{}data id1;
  init\char95{}data id2;
  del\char95{}data dd1;
  del\char95{}data dd2;
  int i;
  
  load(\&ld1);
  init(ld1, \&id1);
  init(ld1, \&id2);

  foreach email in (emails\char95{}to\char95{}deliver) \{
    \Node%
{\def\Element%
{146}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{}(ld1, id1, \&dd1);
    \Node%
{\def\Element%
{147}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{}(ld1, id2, \&dd2);

    foreach recipient in (recipients\char95{}of\char95{}email(email)) \{
      \Node%
{\def\Element%
{148}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{}(ld1, id1, dd1, recipient);
      \Node%
{\def\Element%
{149}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{}(ld1, id2, dd2, recipient);
    \}
    \Node%
{\def\Element%
{150}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{}(ld1, id1, dd1);
    \Node%
{\def\Element%
{151}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{}(ld1, id1, dd2);
  \}

  done(ld1, id1);
  done(ld1, id2);
  unload(ld1);
\}
\endPar{}\endNode{}
 	or a mix of the two.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{152}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}4.2. \Node%
{\def\Element%
{153}\def\ProcessingMode%
{title-sosofo-mode}}Multiple threads\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{153}}\endNode{}\Node%
{\def\Element%
{154}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Using this execution path, the caller will call the
	load method exactly once, before spawning any thread,
	or by performing the correct locking.
      \endPar{}\endNode{}\Node%
{\def\Element%
{155}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Each thread will then call the \Node%
{\def\Element%
{156}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method to obtain
	a descriptor usable only in the given thread. 
	In short, \Node%
{\def\Element%
{157}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} descriptors are allowed to be shared
	among threads, while \Node%
{\def\Element%
{158}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} descriptors are not.
      \endPar{}\endNode{}\Node%
{\def\Element%
{159}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Here is how the delivery path may look like without
	using locks:
\Node%
{\def\Element%
{160}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
thread(thread\char95{}data th1, load\char95{}data ld) \{
  init\char95{}data id;
  del\char95{}data dd;
  

  init(ld, \&id);

  while(still\char95{}want\char95{}to\char95{}process\char95{}emails) \{
    wait\char95{}for\char95{}emails(\&emails\char95{}to\char95{}deliver);

    foreach email in (emails\char95{}to\char95{}deliver) \{
      \Node%
{\def\Element%
{161}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{}(ld, id, \&dd);
      foreach recipient in (recipients\char95{}of\char95{}email(email)) 
        \Node%
{\def\Element%
{162}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{}(ld, id, dd, recipient);
      \Node%
{\def\Element%
{163}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{}(ld, id, dd);
    \}
  \}

  done(ld, id);
\}

caller() \{
  load\char95{}data ld1;
  thread\char95{}data th1;
  thread\char95{}data th2;
  thread\char95{}data th3;

  
  load(\&ld1);

  spawn\char95{}thread(\&th1, thread, ld1);
  spawn\char95{}thread(\&th2, thread, ld1);
  spawn\char95{}thread(\&th3, thread, ld1);

  wait\char95{}threads(th1, th2, th3);
  unload(ld1);
\}
\endPar{}\endNode{}
        where the caller spawns three threads to handle
	requests.
      \endPar{}\endNode{}\Node%
{\def\Element%
{164}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Using locks, it may look something like:
\Node%
{\def\Element%
{165}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
load\char95{}data ld;
thread\char95{}lock lock;

thread(thread\char95{}data th1) \{
  init\char95{}data id;
  del\char95{}data dd;

  if(!load\char95{}data\char95{}initialized(ld)) \{
    lock(\&lock);
    if(!load\char95{}data\char95{}initialized(ld)) 
      load(\&ld);
    unlock(\&lock);
  \}

    /* Here, we are pretty sure ld has
     * been initialized */
  init(ld, \&id);

  while(still\char95{}want\char95{}to\char95{}process\char95{}emails) \{
    wait\char95{}for\char95{}emails(\&emails\char95{}to\char95{}deliver);

    foreach email in (emails\char95{}to\char95{}deliver) \{
      \Node%
{\def\Element%
{166}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{}(ld, id, \&dd);
      foreach recipient in (recipients\char95{}of\char95{}email(email)) 
        \Node%
{\def\Element%
{167}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{}(ld, id, dd, recipient);
      \Node%
{\def\Element%
{168}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{}(ld, id, dd);
    \}
  \}

  done(ld, id);
\}

caller() \{
  thread\char95{}data th1;
  thread\char95{}data th2;
  thread\char95{}data th3;
  
  spawn\char95{}thread(\&th1, thread, ld1);
  spawn\char95{}thread(\&th2, thread, ld1);
  spawn\char95{}thread(\&th3, thread, ld1);

  wait\char95{}threads(th1, th2, th3);

  if(load\char95{}data\char95{}initialized(ld1))
    unload(ld1);
\}
\endPar{}\endNode{}
        Note that the caller should ensure, whenever possible,
	that the \Node%
{\def\Element%
{169}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method is called exactly once, since
	it may complete CPU intensive tasks.
      \endPar{}\endNode{}\Node%
{\def\Element%
{170}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        Combinations with threads and the execution paths
	shown in the previous section are also allowed.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{171}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}5. \Node%
{\def\Element%
{172}\def\ProcessingMode%
{title-sosofo-mode}}Error handling\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{172}}\endNode{}\Node%
{\def\Element%
{173}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}} 
      Most methods are allowed to return an error. 
      Callers will handle errors in a method/caller 
      specific way, but always obeying some rules.
      To make sure everything will work correctly,
      the Service methods must behave in a well
      defined way: 
      \Node%
{\def\Element%
{174}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{175}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{176}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}if the load, init, \Node%
{\def\Element%
{177}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} methods
	  encounter an error, they must return an
	  error and free up any 
	  resource they may have allocated, like
	  if they were never called, and clean up
	  global variables they may have initialized. 
	  In case of the \Node%
{\def\Element%
{178}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method, the email must
	  be left untouched.\endSeq{}\endNode{}\endPar{}\Node%
{\def\Element%
{179}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	  The \Node%
{\def\Element%
{180}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method must thus be very careful in
	  handling the stream, paying attention not
	  to leave it in an undefined state (it should
	  either complete to use it or not use it at all). 
	  \endPar{}\endNode{}\Node%
{\def\Element%
{181}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
	  It is probably best practice to leave stream
	  usage to the delivery method (\Node%
{\def\Element%
{182}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{}).
	\endPar{}\endNode{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{183}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{184}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}the \Node%
{\def\Element%
{185}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{} and \Node%
{\def\Element%
{186}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{} method should
	  not return any error. They must, in any case,
	  free up all the resources allocated by the
	  corresponding counterpart. They are however 
	  allowed to output warnings or return error 
	  strings, which may or may not be used by the 
	  caller. The impossibility to free up resources,
	  will probably cause the caller to exit.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{187}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{188}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}the \Node%
{\def\Element%
{189}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{} method can return an error,
	  in which case the delivery of the whole
	  mail will be considered \Node%
{\def\Element%
{190}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fPosture%
{italic}}failed\endSeq{}\endNode{}.
	  The \Node%
{\def\Element%
{191}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{} method must in any case
	  free up all the resources allocated
	  by the \Node%
{\def\Element%
{192}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{193}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{194}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}the \Node%
{\def\Element%
{195}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{} method may return any error
	  status, and the caller will behave as necessary
	  to respond to the status. Mainly, the \Node%
{\def\Element%
{196}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{}
	  can return a value indicating an error in the
	  delivery process (for example, need to bounce
	  the message) or an internal error. In any case,
	  all the resources allocated by the method
	  must be freed, in order to avoid memory/resource
	  leaks.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
    \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Label%
{start}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}6. \Node%
{\def\Element%
{198}\def\ProcessingMode%
{title-sosofo-mode}}Starting to write a PigeonDeliver Service\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{198}}\endNode{}\Node%
{\def\Element%
{199}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}Before starting, keep in mind that many of the ``mandatory''
      indications contained in this section are actually ``suggestions''.
      However, if you decide not to obey some or any of the suggested
      rules, and doing things the way you like, you are on your own
      if you ever have problems, and you make life harder for those
      who want to help or work on your code.\endPar{}\endNode{}\Node%
{\def\Element%
{200}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      If you find there is something which is hard to do following
      the specifications of the described model, please don't look for
      ways to work around/hack the imposed limits. If the model has
      limits, then probably the model needs to be changed, and I'm
      always glad to expand it/make it easier to use. Just take your
      time to discuss it on one of the mailing lists. Maybe there's a 
      simpler way to go you didn't think about...
    \endPar{}\endNode{}\Node%
{\def\Element%
{201}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}First of all, you need to create a directory where to put
      your own Service and a .c file with the name of your own module.\endPar{}\endNode{}\Node%
{\def\Element%
{202}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      For example, if you want to write a module called ``mailToMars'',
      you need to create the directory mailToMars with the command
      \Node%
{\def\Element%
{203}}\Seq%
{\def\fWeight%
{bold}}mkdir mailToMars\endSeq{}\endNode{}, cd into it with something
      like \Node%
{\def\Element%
{204}}\Seq%
{\def\fWeight%
{bold}}cd mailToMars\endSeq{}\endNode{} and finally create a file
      \Node%
{\def\Element%
{205}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}mailToMars.c\endSeq{}\endNode{}.
    \endPar{}\endNode{}\Node%
{\def\Element%
{206}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
       Open \Node%
{\def\Element%
{207}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}mailToMars.c\endSeq{}\endNode{} and then
       start it by typing:
      \Node%
{\def\Element%
{208}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
\#include <\/dscm0/dscm.h>\/
\#include <\/dscm0/dscm-\/service.h>\/

      \endPar{}\endNode{}
      in order to include the correct header files.
    \endPar{}\endNode{}\Node%
{\def\Element%
{209}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Now, you need to define the main structure that
      will be used by the PigeonDeliver interface to
      call your module by declaring the name of your
      Service and the methods to be called, using 
      something like:
      \Node%
{\def\Element%
{210}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
DSCM\char95{}SERVICE(dscm\char95{}mailToMars) \{
  DSCM\char95{}NAME(dscm\char95{}mailToMars),
  /* \Node%
{\def\Element%
{211}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}load\endSeq{}\endNode{} */	    NULL,
  /* \Node%
{\def\Element%
{212}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}unload\endSeq{}\endNode{} */      NULL,
  /* \Node%
{\def\Element%
{213}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}init\endSeq{}\endNode{} */    NULL,
  /* \Node%
{\def\Element%
{214}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}perform\endSeq{}\endNode{} */ NULL,
  /* \Node%
{\def\Element%
{215}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}del\char95{}done\endSeq{}\endNode{} */    NULL,
  /* \Node%
{\def\Element%
{216}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}init\endSeq{}\endNode{} */	    NULL,
  /* \Node%
{\def\Element%
{217}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{8.1\p@}}done\endSeq{}\endNode{} */        NULL
\};
      \endPar{}\endNode{}
      Note that it is a good idea:
      \Node%
{\def\Element%
{218}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{219}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{220}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}to write mailToMars exactly the same way twice as shown above.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{221}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{222}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}to always define a \Node%
{\def\Element%
{223}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fPosture%
{italic}}\Node%
{\def\Element%
{224}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{} \endSeq{}\endNode{} method,
	  otherwise your module will be discarded as invalid (\Node%
{\def\Element%
{225}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{}
	  is mandatory).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{226}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{227}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}to leave the comments where they are, in order to make life
	  easier for those reading the code for the first time.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{228}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{229}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}keep all pointers NULL until you write the fully compliant function
	  able to handle the method.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{230}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{231}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}to always leave this structure at the end of the file. Rationale:
	  this structure contains many pointer to functions. Those functions
	  should be declared static, as explained in the next few sections,
	  kept private and their declaration never put in any .h files (yes,
	  it works anyway, but you better keep things clean anyway).
	  If you always keep this structure \Node%
{\def\Element%
{232}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fPosture%
{italic}}at the end\endSeq{}\endNode{} of
	  your file, you won't run into troubles with your compiler. Additionally,
	  as being a common habit to leave it at the end of the file, you make
	  life easier for other programmers.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
    \endPar{}\endNode{}\Node%
{\def\Element%
{233}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      You can now start writing your own methods to handle requests. In 
      the following sections, the prototypes of the functions and their
      expected behavior is described. To know what they should do
      or why they should be defined, please read the section
      \Node%
{\def\Element%
{234}}\Link%
{\def\Label%
{methods}}Service provided methods\endLink{}\endNode{}.
    \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Label%
{prototypes}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7. \Node%
{\def\Element%
{236}\def\ProcessingMode%
{title-sosofo-mode}}About Methods\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{236}}\endNode{}\Node%
{\def\Element%
{237}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      If you need a description on how methods are called and
      how methods are supposed to handle errors, please read
      the first few sections of this same document.
    \endPar{}\endNode{}\Node%
{\def\Element%
{238}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      In this section we will go into details about writing
      each of the methods a Service should/may provide.
    \endPar{}\endNode{}\Node%
{\def\Element%
{239}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Please keep in mind that only few functions of the 
      PigeonDeliver API will be discussed in the following
      sections. For a full list of functions, please take
      a look at \%TODO\%.
    \endPar{}\endNode{}\Node%
{\def\Element%
{240}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Each of the following sections information about
      how to declare the given method, the parameters
      that the caller will take care to pass and 
      the return value it will be allowed to return.
    \endPar{}\endNode{}\Node%
{\def\Element%
{241}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Functions have all been declared as if they were
      part of the mailToMars Service. Please replace 
      mailToMars with the name of your own module.
    \endPar{}\endNode{}\Node%
{\def\Element%
{242}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Error statuses, or the type \Node%
{\def\Element%
{243}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscm\char95{}mstatus\char95{}srv\char95{}e\endSeq{}\endNode{},
      will be discussed further in their own section \%TODO\%.
    \endPar{}\endNode{}\Node%
{\def\Element%
{244}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      For a complete example of a module, please look into the sources directory, \Node%
{\def\Element%
{245}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}dscm/services\endSeq{}\endNode{}.
      A good example may be the mailForward or mailAntivirus module.
    \endPar{}\endNode{}\Node%
{\def\Element%
{246}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.1. \Node%
{\def\Element%
{247}\def\ProcessingMode%
{title-sosofo-mode}}load method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{247}}\endNode{}\Node%
{\def\Element%
{248}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{249}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{250}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{251}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{252}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}load\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{253}}\Seq%
{}(dscm\char95{}state\char95{}t *\Node%
{\def\Element%
{254}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}state\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{255}}\Seq%
{}void **\Node%
{\def\Element%
{256}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{257}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{258}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{259}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{260}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}state\endSeq{}\endNode{} contains the state parameter used by many of the 
	    PigeonDeliver API functions.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{261}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{262}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{263}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} allows the function to return a custom descriptor,
	    the load\char95{}data described in the examples in the previous sections. This descriptor
	    is then passed over to all the other Service methods.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
	In case an error verifies, the function must return an error and cleanup and reset
	all the allocated resources, like if it was never called. It is acceptable for the
	caller to try to call the \Node%
{\def\Element%
{264}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method again in case of failure.
      \endPar{}\endNode{}\Node%
{\def\Element%
{265}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{266}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{267}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{268}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}state\endSeq{}\endNode{} or \Node%
{\def\Element%
{269}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} parameter,
	and should generate an assertion failed error in case it is.
      \endPar{}\endNode{}\Node%
{\def\Element%
{270}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{271}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method should always make use of the \Node%
{\def\Element%
{272}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{}
	parameter. If it is left NULL, the caller can assume: that the load method was never called
	and the ld parameter still needs initialization or that there is no need to call other
	Service methods. In the rare case you don't need it, please set it to a non-\/zero value
	anyway.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{273}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.2. \Node%
{\def\Element%
{274}\def\ProcessingMode%
{title-sosofo-mode}}unload method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{274}}\endNode{}\Node%
{\def\Element%
{275}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{276}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{277}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{278}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{279}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}unload\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{280}}\Seq%
{}(void **\Node%
{\def\Element%
{281}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{282}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{283}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{284}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{285}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{286}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method (in the examples, referred as load\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
	Although allowed, it is unacceptable for this function to fail and return
	an error. In case it does, however, the caller will probably die, since it
	couldn't free up important resources.
      \endPar{}\endNode{}\Node%
{\def\Element%
{287}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{288}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{289}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{290}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} parameter,
	and should generate an assertion failed error in case it is.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{291}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.3. \Node%
{\def\Element%
{292}\def\ProcessingMode%
{title-sosofo-mode}}init method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{292}}\endNode{}\Node%
{\def\Element%
{293}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{294}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{295}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{296}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{297}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}init\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{298}}\Seq%
{}(void *\Node%
{\def\Element%
{299}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{300}}\Seq%
{}void **\Node%
{\def\Element%
{301}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}id\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{302}}\Seq%
{}dscm\char95{}secret\char95{}t *\Node%
{\def\Element%
{303}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}secret\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{304}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{305}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{306}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{307}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{308}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method (in the examples, referred as load\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{309}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{310}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{311}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} allows the function to return a custom descriptor,
	    the init\char95{}data described in the examples in the previous sections. This descriptor
	    is then passed over to all the other Service methods.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{312}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{313}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{314}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}secret\endSeq{}\endNode{} an authentication descriptor used by many
	    PigeonDeliver API to perform authentication. This parameter may disappear
	    in future releases of PigeonDeliver.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
	In case an error verifies, the function must return an error and cleanup and reset
	all the allocated resources, like if it was never called. It is acceptable for the
	caller to try to call the \Node%
{\def\Element%
{315}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method again in case of failure.
      \endPar{}\endNode{}\Node%
{\def\Element%
{316}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{317}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{318}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{319}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{}, \Node%
{\def\Element%
{320}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} or \Node%
{\def\Element%
{321}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}secret\endSeq{}\endNode{}
	parameter, and should generate an assertion failed error in case it is.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{322}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.4. \Node%
{\def\Element%
{323}\def\ProcessingMode%
{title-sosofo-mode}}done method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{323}}\endNode{}\Node%
{\def\Element%
{324}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{325}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{326}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{327}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{328}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}done\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{329}}\Seq%
{}(void *\Node%
{\def\Element%
{330}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{331}}\Seq%
{}void *\Node%
{\def\Element%
{332}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}id\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{333}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{334}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{335}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{336}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{337}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method (in the examples, referred as load\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{338}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{339}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{340}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{341}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method (in the examples, referred as init\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}

	Although allowed, it is unacceptable for this function to fail and return
	an error. In case it does, however, the caller will probably die, since it
	couldn't free up important resources.
      \endPar{}\endNode{}\Node%
{\def\Element%
{342}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{343}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{344}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{345}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} or \Node%
{\def\Element%
{346}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} parameter,
	and should generate an assertion failed error in case it is.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{347}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.5. \Node%
{\def\Element%
{348}\def\ProcessingMode%
{title-sosofo-mode}}del\char95{}init method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{348}}\endNode{}\Node%
{\def\Element%
{349}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{350}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{351}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{352}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{353}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}del\char95{}init\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{354}}\Seq%
{}(void *\Node%
{\def\Element%
{355}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{356}}\Seq%
{}void *\Node%
{\def\Element%
{357}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}id\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{358}}\Seq%
{}void **\Node%
{\def\Element%
{359}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}dd\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{360}}\Seq%
{}dscm\char95{}request\char95{}t *\Node%
{\def\Element%
{361}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}req\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{362}}\Seq%
{}dscm\char95{}stream\char95{}t *\Node%
{\def\Element%
{363}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}stream\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{364}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{365}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{366}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{367}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{368}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method (in the examples, referred as load\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{369}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{370}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{371}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{372}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method (in the examples, referred as init\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{373}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{374}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{375}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dd\endSeq{}\endNode{} allows the function to return a custom descriptor,
	    the del\char95{}data described in the examples in the previous sections. This descriptor
	    is then passed over to all the other Service methods.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{376}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{377}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{378}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}req\endSeq{}\endNode{} a structure representing the delivery request.
	    Used by other PigeonDeliver API to gather information about the current
	    delivery. Although the API is not complete yet, this parameter should
	    never be used directly by the Service.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{379}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{380}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{381}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}stream\endSeq{}\endNode{} a structure representing the control stream
	    used by other PigeonDeliver API. This parameter will disappear in future
	    version of PigeonDeliver.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
	In case an error verifies, the function must return an error and cleanup and reset
	all the allocated resources, like if it was never called. It is acceptable for the
	caller to try to call the \Node%
{\def\Element%
{382}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method again in case of failure.
      \endPar{}\endNode{}\Node%
{\def\Element%
{383}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{384}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{385}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{386}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{}, \Node%
{\def\Element%
{387}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{}, \Node%
{\def\Element%
{388}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dd\endSeq{}\endNode{},
	\Node%
{\def\Element%
{389}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}req\endSeq{}\endNode{} or \Node%
{\def\Element%
{390}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}stream\endSeq{}\endNode{} parameter, and should generate an 
	assertion failed error in case it is.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{391}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.6. \Node%
{\def\Element%
{392}\def\ProcessingMode%
{title-sosofo-mode}}del\char95{}done method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{392}}\endNode{}\Node%
{\def\Element%
{393}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{394}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{395}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{396}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{397}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}del\char95{}done\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{398}}\Seq%
{}(void *\Node%
{\def\Element%
{399}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{400}}\Seq%
{}void *\Node%
{\def\Element%
{401}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}id\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{402}}\Seq%
{}void *\Node%
{\def\Element%
{403}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}dd\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{404}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{405}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{406}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{407}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{408}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method (in the examples, referred as load\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{409}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{410}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{411}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{412}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method (in the examples, referred as init\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{413}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{414}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{415}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dd\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{416}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method (in the examples, referred as del\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}

        In case this function returns an error, the caller may assume that all
	the resources were freed correctly but that the email could not be delivered.
      \endPar{}\endNode{}\Node%
{\def\Element%
{417}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{418}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{419}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{420}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{}, \Node%
{\def\Element%
{421}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} or \Node%
{\def\Element%
{422}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dd\endSeq{}\endNode{} 
	parameter, and should generate an assertion failed error in case it is.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{423}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}7.7. \Node%
{\def\Element%
{424}\def\ProcessingMode%
{title-sosofo-mode}}del\char95{}perform method\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{424}}\endNode{}\Node%
{\def\Element%
{425}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        \Node%
{\def\Element%
{426}}\Par%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{427}}\Seq%
{}\Par%
{\def\fFamName{Courier-New}}\Node%
{\def\Element%
{428}}static dscm\char95{}mstatus\char95{}srv\char95{}e \Node%
{\def\Element%
{429}}\Seq%
{\def\fWeight%
{bold}}dscm\char95{}mailToMars\char95{}del\char95{}done\endSeq{}\endNode{}\endNode{}\Node%
{\def\Element%
{430}}\Seq%
{}(void *\Node%
{\def\Element%
{431}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}ld\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{432}}\Seq%
{}void *\Node%
{\def\Element%
{433}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}id\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{434}}\Seq%
{}void *\Node%
{\def\Element%
{435}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}dd\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{436}}\Seq%
{}dscm\char95{}recipient\char95{}t *\Node%
{\def\Element%
{437}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}rcpt\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{438}}\Seq%
{}dscm\char95{}attr\char95{}t *\Node%
{\def\Element%
{439}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}db\char95{}attrs\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{440}}\Seq%
{}int *\Node%
{\def\Element%
{441}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}mail\char95{}status\endSeq{}\endSeq{}\endNode{}, \endSeq{}\endNode{}\Node%
{\def\Element%
{442}}\Seq%
{}dscm\char95{}inject\char95{}t **\Node%
{\def\Element%
{443}}\Seq%
{}\Seq%
{\def\fPosture%
{italic}}inject\endSeq{}\endSeq{}\endNode{});\endSeq{}\endNode{}\endPar{}\endSeq{}\endNode{}\endDisplayGroup{}\endPar{}\endNode{}

        \Node%
{\def\Element%
{444}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\saNom%
{5\p@}\def\saMin%
{5\p@}\def\saMax%
{5\p@}\def\saConditional%
{1}}\Node%
{\def\Element%
{445}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{446}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{447}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{448}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}load\endSeq{}\endNode{} method (in the examples, referred as load\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{449}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{450}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{451}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{452}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{} method (in the examples, referred as init\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{453}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{454}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{455}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dd\endSeq{}\endNode{} a pointer to the data initialized by the
	    \Node%
{\def\Element%
{456}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} method (in the examples, referred as del\char95{}data).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{457}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{458}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{459}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}rcpt\endSeq{}\endNode{} a pointer to a structure representing the
	    current recipient of a mail.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{460}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{461}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{462}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}db\char95{}attrs\endSeq{}\endNode{} a pointer to a structure representing the
	    configuration of the recipient the caller would like to be applied to the
	    delivery.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{463}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{464}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{465}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}mail\char95{}status\endSeq{}\endNode{} while the return value of the function
	    represents if the function itself succeeded or failed, this status indicates
	    what sort the mail should follow once the function returns.\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{466}}\DisplayGroup%
{\def\StartIndent%
{58\p@}\def\StartIndentFactor%
{0}}\Par%
{\def\FirstLineStartIndent%
{-10\p@}\def\FirstLineStartIndentFactor%
{0}\def\fFamName{Times-New-Roman}\def\fWeight%
{medium}\def\fSize%
{10\p@}\def\sbNom%
{5\p@}\def\sbMin%
{5\p@}\def\sbMax%
{5\p@}\def\sbConditional%
{1}}\Seq%
{}\LineField%
{\def\fSize%
{8\p@}\def\PositionPointShift%
{0\p@}\def\PositionPointShiftFactor%
{0}\def\FieldWidth%
{10\p@}\def\FieldWidthFactor%
{0}}\Character{8226}\endLineField{}\endSeq{}\Node%
{\def\Element%
{467}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{}\Node%
{\def\Element%
{468}\def\ProcessingMode%
{listitem-content-mode}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}inject\endSeq{}\endNode{} a pointer to a structure used by other
	    PigeonDeliver API in order to allow a Service to change a mail
	    being delivered (inject a mail in the queue).\endSeq{}\endNode{}\endPar{}\endDisplayGroup{}\endNode{}\endDisplayGroup{}\endNode{}
      \endPar{}\endNode{}\Node%
{\def\Element%
{469}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
        The \Node%
{\def\Element%
{470}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{} method can assume it will \Node%
{\def\Element%
{471}}\Seq%
{\def\fPosture%
{italic}}never be\endSeq{}\endNode{}
	called with a NULL \Node%
{\def\Element%
{472}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}ld\endSeq{}\endNode{}, \Node%
{\def\Element%
{473}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}id\endSeq{}\endNode{}, \Node%
{\def\Element%
{474}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dd\endSeq{}\endNode{},
	\Node%
{\def\Element%
{475}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}rcpt\endSeq{}\endNode{}, \Node%
{\def\Element%
{476}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}mail\char95{}status\endSeq{}\endNode{} or \Node%
{\def\Element%
{477}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}inject\endSeq{}\endNode{}
	parameter, and should generate an assertion failed error in case it is. Note that \Node%
{\def\Element%
{478}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}db\char95{}attrs\endSeq{}\endNode{}
	is thus allowed to be NULL.
      \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{479}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}8. \Node%
{\def\Element%
{480}\def\ProcessingMode%
{title-sosofo-mode}}Error statuses\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{480}}\endNode{}\Node%
{\def\Element%
{481}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Ok, any of the above methods can return a status. Statuses are defined
      in \Node%
{\def\Element%
{482}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}dscm0/dscm-\/service.h\endSeq{}\endNode{}:
\Node%
{\def\Element%
{483}}\Par%
{\def\fSize%
{9\p@}\def\LineSpacing%
{11.7\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\fFamName{Courier-New}\def\fWeight%
{medium}\def\fPosture%
{upright}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Lines%
{asis}\def\InputWhitespaceTreatment%
{preserve}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}
typedef enum dscm\char95{}mstatus\char95{}srv\char95{}e \{
  DSCM\char95{}STANDARD\char95{}STATUS(Srv),
  dscmSrvOk,            
  dscmSrvError,        
  dscmSrvConfig,     

  dscmSrvBounce,      
  dscmSrvDefer,
  dscmSrvSkip       
\} dscm\char95{}mstatus\char95{}srv\char95{}e;
\endPar{}\endNode{}
      Ok, \Node%
{\def\Element%
{484}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvOk\endSeq{}\endNode{} should always returned, unless
      something bad happens. \Node%
{\def\Element%
{485}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}init\endSeq{}\endNode{}, \Node%
{\def\Element%
{486}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{} and
      \Node%
{\def\Element%
{487}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} are allowed to return any of the values
      \Node%
{\def\Element%
{488}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvOk\endSeq{}\endNode{}, \Node%
{\def\Element%
{489}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvError\endSeq{}\endNode{} (to indicate 
      a generic error), \Node%
{\def\Element%
{490}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvConfig\endSeq{}\endNode{} (to indicate a configuration 
      validation error). Additionally, the \Node%
{\def\Element%
{491}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}init\endSeq{}\endNode{} can return 
      \Node%
{\def\Element%
{492}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvSkip\endSeq{}\endNode{} to indicate that \Node%
{\def\Element%
{493}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{} and 
      \Node%
{\def\Element%
{494}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{} should not be called for this mail. 
      \Node%
{\def\Element%
{495}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}perform\endSeq{}\endNode{} can additionally return \Node%
{\def\Element%
{496}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvDefer\endSeq{}\endNode{}, 
      to defer a message (not supported yet, will be in future releases) or 
      \Node%
{\def\Element%
{497}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvBounce\endSeq{}\endNode{} to bounce it. \Node%
{\def\Element%
{498}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}del\char95{}done\endSeq{}\endNode{} is 
      allowed to return \Node%
{\def\Element%
{499}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvOk\endSeq{}\endNode{} or \Node%
{\def\Element%
{500}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvError\endSeq{}\endNode{}, 
      in which case the delivery is considered failed, while \Node%
{\def\Element%
{501}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}done\endSeq{}\endNode{} and 
      \Node%
{\def\Element%
{502}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}}unload\endSeq{}\endNode{} should always return \Node%
{\def\Element%
{503}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvOk\endSeq{}\endNode{}, 
      while \Node%
{\def\Element%
{504}}\Seq%
{\def\fFamName{Courier-New}\def\fSize%
{9\p@}\def\fPosture%
{italic}}dscmSrvError\endSeq{}\endNode{} and any other value may cause the caller to die.
    \endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{505}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{17.28\p@}\def\LineSpacing%
{22.464\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{0\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{2}\def\sbNom%
{12.96\p@}\def\sbMin%
{12.96\p@}\def\sbMax%
{12.96\p@}\def\sbConditional%
{1}\def\saNom%
{3.456\p@}\def\saMin%
{3.456\p@}\def\saMax%
{3.456\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9. \Node%
{\def\Element%
{506}\def\ProcessingMode%
{title-sosofo-mode}}PigeonDeliver API for Services\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{506}}\endNode{}\Node%
{\def\Element%
{507}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      Although Services may make use of any public PigeonDeliver function,
      in this section we will try to discuss generic issues arising while 
      writing PigeonDeliver Services and how they can be solved and of which
      functions to make use of.
    \endPar{}\endNode{}\Node%
{\def\Element%
{508}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}
      For a full reference of all API functions, please refer to \%TODO\%.
    \endPar{}\endNode{}\Node%
{\def\Element%
{509}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.1. \Node%
{\def\Element%
{510}\def\ProcessingMode%
{title-sosofo-mode}}Accessing user configurations\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{510}}\endNode{}\Node%
{\def\Element%
{511}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{512}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.2. \Node%
{\def\Element%
{513}\def\ProcessingMode%
{title-sosofo-mode}}Outputting errors or warnings\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{513}}\endNode{}\Node%
{\def\Element%
{514}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{515}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.3. \Node%
{\def\Element%
{516}\def\ProcessingMode%
{title-sosofo-mode}}Reading the email being delivered\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{516}}\endNode{}\Node%
{\def\Element%
{517}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{518}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.4. \Node%
{\def\Element%
{519}\def\ProcessingMode%
{title-sosofo-mode}}Changing the email being delivered\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{519}}\endNode{}\Node%
{\def\Element%
{520}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{521}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.5. \Node%
{\def\Element%
{522}\def\ProcessingMode%
{title-sosofo-mode}}Forwarding a mail\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{522}}\endNode{}\Node%
{\def\Element%
{523}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{524}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.6. \Node%
{\def\Element%
{525}\def\ProcessingMode%
{title-sosofo-mode}}Generating a mail\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{525}}\endNode{}\Node%
{\def\Element%
{526}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\Node%
{\def\Element%
{527}}\DisplayGroup%
{\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\sbNom%
{10\p@}\def\sbMin%
{10\p@}\def\sbMax%
{10\p@}\def\sbConditional%
{1}\def\saNom%
{10\p@}\def\saMin%
{10\p@}\def\saMax%
{10\p@}\def\saConditional%
{1}}\Seq%
{}\Seq%
{}\Par%
{\def\fFamName{Arial}\def\fWeight%
{bold}\def\fPosture%
{upright}\def\fSize%
{14.4\p@}\def\LineSpacing%
{18.72\p@}\def\LineSpacingFactor%
{0}\def\StartIndent%
{48\p@}\def\StartIndentFactor%
{0}\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\HeadingLevel%
{3}\def\sbNom%
{10.8\p@}\def\sbMin%
{10.8\p@}\def\sbMax%
{10.8\p@}\def\sbConditional%
{1}\def\saNom%
{2.88\p@}\def\saMin%
{2.88\p@}\def\saMax%
{2.88\p@}\def\saConditional%
{1}\def\KeepWithNext%
{1}}9.7. \Node%
{\def\Element%
{528}\def\ProcessingMode%
{title-sosofo-mode}}Modifying the delivery process\endNode{}\endPar{}\endSeq{}\Node%
{\def\Element%
{528}}\endNode{}\Node%
{\def\Element%
{529}}\Par%
{\def\FirstLineStartIndent%
{0\p@}\def\FirstLineStartIndentFactor%
{0}\def\Quadding%
{start}\def\Hyphenate%
{0}\def\Language%
{EN}\def\sbNom%
{20\p@}\def\sbMin%
{20\p@}\def\sbMax%
{20\p@}\def\sbConditional%
{1}\def\saNom%
{1.25\p@}\def\saMin%
{1.25\p@}\def\saMax%
{1.25\p@}\def\saConditional%
{1}}\endPar{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\endSeq{}\endDisplayGroup{}\endNode{}\endSpS{}\endSeq{}\endNode{}\endNode{}\endSeq{}\endFOT{}
