Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > b36c97ff723e66f0f38bce83645c99dc > files > 486

exiv2-doc-0.18.2-1mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Exiv2: Exiv2::Internal::TiffEncoder Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceExiv2.html">Exiv2</a>::<a class="el" href="namespaceExiv2_1_1Internal.html">Internal</a>::<a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html">TiffEncoder</a>
  </div>
</div>
<div class="contents">
<h1>Exiv2::Internal::TiffEncoder Class Reference</h1><!-- doxytag: class="Exiv2::Internal::TiffEncoder" --><!-- doxytag: inherits="Exiv2::Internal::TiffVisitor" -->TIFF composite visitor to encode metadata from an image to the TIFF tree. The metadata containers and root element of the tree are supplied in the constructor. Used by <a class="el" href="classExiv2_1_1Internal_1_1TiffParserWorker.html" title="Stateless parser class for data in TIFF format. Images use this class to decode and...">TiffParserWorker</a> to encode the metadata into a TIFF composite.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;tiffvisitor_int.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Exiv2::Internal::TiffEncoder:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1Internal_1_1TiffEncoder__inherit__graph.png" border="0" usemap="#Exiv2_1_1Internal_1_1TiffEncoder__inherit__map" alt="Inheritance graph"></center>
<map name="Exiv2_1_1Internal_1_1TiffEncoder__inherit__map">
<area shape="rect" id="node2" href="classExiv2_1_1Internal_1_1TiffVisitor.html" title="Abstract base class defining the interface for TIFF composite vistors (Visitor pattern)..." alt="" coords="5,5,307,32"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for Exiv2::Internal::TiffEncoder:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1Internal_1_1TiffEncoder__coll__graph.png" border="0" usemap="#Exiv2_1_1Internal_1_1TiffEncoder__coll__map" alt="Collaboration graph"></center>
<map name="Exiv2_1_1Internal_1_1TiffEncoder__coll__map">
<area shape="rect" id="node2" href="classExiv2_1_1Internal_1_1TiffVisitor.html" title="Abstract base class defining the interface for TIFF composite vistors (Visitor pattern)..." alt="" coords="2640,5,2941,32"><area shape="rect" id="node4" href="classExiv2_1_1ExifData.html" title="A container for Exif data. This is a top&#45;level class of the Exiv2 library. The container..." alt="" coords="2433,113,2604,140"><area shape="rect" id="node8" href="classExiv2_1_1Exifdatum.html" title="An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate..." alt="" coords="1329,117,1511,144"><area shape="rect" id="node10" href="classExiv2_1_1Metadatum.html" title="Abstract base class defining the interface to access information related to one metadata..." alt="" coords="973,168,1155,195"><area shape="rect" id="node38" href="classExiv2_1_1Xmpdatum.html" title="Information related to an XMP property. An XMP metadatum consists of an XmpKey and..." alt="" coords="1760,223,1931,249"><area shape="rect" id="node56" href="classExiv2_1_1Iptcdatum.html" title="An IPTC metadatum (&quot;dataset&quot;), consisting of an IptcKey and a Value and..." alt="" coords="1329,276,1511,303"><area shape="rect" id="node14" href="classExiv2_1_1ExifKey.html" title="Concrete keys for Exif metadata." alt="" coords="592,107,752,133"><area shape="rect" id="node16" href="classExiv2_1_1Key.html" title="Abstract base class defining the Key of a metadatum. Keys are used to identify and..." alt="" coords="316,351,436,377"><area shape="rect" id="node45" href="classExiv2_1_1XmpKey.html" title="Concrete keys for XMP metadata." alt="" coords="596,401,748,428"><area shape="rect" id="node61" href="classExiv2_1_1IptcKey.html" title="Concrete keys for IPTC metadata." alt="" coords="592,333,752,360"><area shape="rect" id="node18" title="STL class." alt="" coords="311,107,441,133"><area shape="rect" id="node20" title="STL class." alt="" coords="7,107,257,133"><area shape="rect" id="node22" title="STL class." alt="" coords="572,261,772,288"><area shape="rect" id="node31" title="STL class." alt="" coords="1329,432,1511,459"><area shape="rect" id="node41" href="structExiv2_1_1Xmpdatum_1_1Impl.html" title="Internal Pimpl structure of class Xmpdatum." alt="" coords="1304,372,1536,399"><area shape="rect" id="node28" href="classExiv2_1_1Value.html" title="Common interface for all types of values used with metadata." alt="" coords="601,157,743,184"><area shape="rect" id="node34" href="classExiv2_1_1XmpData.html" title="A container for XMP data. This is a top&#45;level class of the Exiv2 library." alt="" coords="2711,233,2871,260"><area shape="rect" id="node52" href="classExiv2_1_1IptcData.html" title="A container for IPTC data. This is a top&#45;level class of the Exiv2 library." alt="" coords="2433,177,2604,204"><area shape="rect" id="node68" href="classExiv2_1_1Internal_1_1TiffComponent.html" title="Interface class for components of a TIFF directory hierarchy (Composite pattern)..." alt="" coords="2631,284,2951,311"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classExiv2_1_1Internal_1_1TiffEncoder-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Creators</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ecd7483febc845775efb80376accb7be"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::TiffEncoder" ref="ecd7483febc845775efb80376accb7be" args="(const ExifData &amp;exifData, const IptcData &amp;iptcData, const XmpData &amp;xmpData, TiffComponent *pRoot, ByteOrder byteOrder, FindEncoderFct findEncoderFct)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#ecd7483febc845775efb80376accb7be">TiffEncoder</a> (const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> &amp;exifData, const <a class="el" href="classExiv2_1_1IptcData.html">IptcData</a> &amp;iptcData, const <a class="el" href="classExiv2_1_1XmpData.html">XmpData</a> &amp;xmpData, <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *pRoot, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, <a class="el" href="namespaceExiv2_1_1Internal.html#91ee5bdd4a9efb772c5954a4ba430417">FindEncoderFct</a> findEncoderFct)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor, taking the root element of the composite to encode to, the image with the metadata to encode and a function to find special encoders. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5488b10faeaa913dc34aac9c9a8ac033"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::~TiffEncoder" ref="5488b10faeaa913dc34aac9c9a8ac033" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#5488b10faeaa913dc34aac9c9a8ac033">~TiffEncoder</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Virtual destructor. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Manipulators</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="163c9c49059d96105748d7e2ea8d2b74"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitEntry" ref="163c9c49059d96105748d7e2ea8d2b74" args="(TiffEntry *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#163c9c49059d96105748d7e2ea8d2b74">visitEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntry.html">TiffEntry</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2b855fb74f2550d2f735327c643f3b7"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitDataEntry" ref="b2b855fb74f2550d2f735327c643f3b7" args="(TiffDataEntry *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#b2b855fb74f2550d2f735327c643f3b7">visitDataEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffDataEntry.html">TiffDataEntry</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF data entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a16a113a06fa297ea1397781ac4e920e"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitImageEntry" ref="a16a113a06fa297ea1397781ac4e920e" args="(TiffImageEntry *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a16a113a06fa297ea1397781ac4e920e">visitImageEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffImageEntry.html">TiffImageEntry</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF image entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2ca8286cc85a46a779954e115bbf0232"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitSizeEntry" ref="2ca8286cc85a46a779954e115bbf0232" args="(TiffSizeEntry *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#2ca8286cc85a46a779954e115bbf0232">visitSizeEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffSizeEntry.html">TiffSizeEntry</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF size entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="af94fc517661659348d8f4c626807de9"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitDirectory" ref="af94fc517661659348d8f4c626807de9" args="(TiffDirectory *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#af94fc517661659348d8f4c626807de9">visitDirectory</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffDirectory.html">TiffDirectory</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF directory. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="410fd37077df80a9a38ab3a20d588056"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitDirectoryNext" ref="410fd37077df80a9a38ab3a20d588056" args="(TiffDirectory *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#410fd37077df80a9a38ab3a20d588056">visitDirectoryNext</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffDirectory.html">TiffDirectory</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Update directory entries. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a106e5ebb8b7f37de783a61e441a9614"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitSubIfd" ref="a106e5ebb8b7f37de783a61e441a9614" args="(TiffSubIfd *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a106e5ebb8b7f37de783a61e441a9614">visitSubIfd</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffSubIfd.html">TiffSubIfd</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF sub-IFD. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f7217ab05df66ee8527e92b5353c8b79"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitMnEntry" ref="f7217ab05df66ee8527e92b5353c8b79" args="(TiffMnEntry *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#f7217ab05df66ee8527e92b5353c8b79">visitMnEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffMnEntry.html">TiffMnEntry</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode a TIFF makernote. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6cdc32e19303876fb2904715e9f84ee0"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitIfdMakernote" ref="6cdc32e19303876fb2904715e9f84ee0" args="(TiffIfdMakernote *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#6cdc32e19303876fb2904715e9f84ee0">visitIfdMakernote</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffIfdMakernote.html">TiffIfdMakernote</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an IFD makernote. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="41660acbc530bcbe1b6d8b27173cac6c"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitIfdMakernoteEnd" ref="41660acbc530bcbe1b6d8b27173cac6c" args="(TiffIfdMakernote *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#41660acbc530bcbe1b6d8b27173cac6c">visitIfdMakernoteEnd</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffIfdMakernote.html">TiffIfdMakernote</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset encoder to its original state, undo makernote specific settings. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="51f6df09ed25aaab91346a2c0b94043f"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitArrayEntry" ref="51f6df09ed25aaab91346a2c0b94043f" args="(TiffArrayEntry *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#51f6df09ed25aaab91346a2c0b94043f">visitArrayEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffArrayEntry.html">TiffArrayEntry</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an array entry component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="44e53235744283c8945fe0019e78c5f5"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::visitArrayElement" ref="44e53235744283c8945fe0019e78c5f5" args="(TiffArrayElement *object)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#44e53235744283c8945fe0019e78c5f5">visitArrayElement</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffArrayElement.html">TiffArrayElement</a> *object)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encode an array element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#6337b077ea2901f35e8fa5654b563f2d">encodeTiffComponent</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Top level encoder function. Determines how to encode each TIFF component. This function is called by the visit methods of the encoder as well as the <a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a7f980841679a63fd86e895c64b9268d" title="Add metadata from image to the TIFF composite.">add()</a> method.  <a href="#6337b077ea2901f35e8fa5654b563f2d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="244d39b4c28146ab5c8e7be0f6ff7f72"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeArrayElement" ref="244d39b4c28146ab5c8e7be0f6ff7f72" args="(TiffArrayElement *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#244d39b4c28146ab5c8e7be0f6ff7f72">encodeArrayElement</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffArrayElement.html">TiffArrayElement</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for an array element. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2d511c90599c66c4bb351f50643fee95"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeArrayEntry" ref="2d511c90599c66c4bb351f50643fee95" args="(TiffArrayEntry *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#2d511c90599c66c4bb351f50643fee95">encodeArrayEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffArrayEntry.html">TiffArrayEntry</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for an array entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c2abfd0b9aedff5d4428bee951cb19af"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeDataEntry" ref="c2abfd0b9aedff5d4428bee951cb19af" args="(TiffDataEntry *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#c2abfd0b9aedff5d4428bee951cb19af">encodeDataEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffDataEntry.html">TiffDataEntry</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for a data entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="94567744627f7f507cc4f1fa16506647"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeTiffEntry" ref="94567744627f7f507cc4f1fa16506647" args="(TiffEntry *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#94567744627f7f507cc4f1fa16506647">encodeTiffEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntry.html">TiffEntry</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for a standard TIFF entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5e3c0f3f3875c5536f83246ba1935bbf"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeImageEntry" ref="5e3c0f3f3875c5536f83246ba1935bbf" args="(TiffImageEntry *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#5e3c0f3f3875c5536f83246ba1935bbf">encodeImageEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffImageEntry.html">TiffImageEntry</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for an image entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2a407a1199102a5865650fafe2a35caf"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeMnEntry" ref="2a407a1199102a5865650fafe2a35caf" args="(TiffMnEntry *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#2a407a1199102a5865650fafe2a35caf">encodeMnEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffMnEntry.html">TiffMnEntry</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for a Makernote entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c49cea13b2c733bb6eb1c9964fc33c26"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeSizeEntry" ref="c49cea13b2c733bb6eb1c9964fc33c26" args="(TiffSizeEntry *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#c49cea13b2c733bb6eb1c9964fc33c26">encodeSizeEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffSizeEntry.html">TiffSizeEntry</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for a size entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2a813e9d67f22839131e26087bef6caf"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeSubIfd" ref="2a813e9d67f22839131e26087bef6caf" args="(TiffSubIfd *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#2a813e9d67f22839131e26087bef6caf">encodeSubIfd</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffSubIfd.html">TiffSubIfd</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback encoder function for a sub-IFD entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4f7eb1a12c41743206eb186732b916db"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeTiffEntryBase" ref="4f7eb1a12c41743206eb186732b916db" args="(TiffEntryBase *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#4f7eb1a12c41743206eb186732b916db">encodeTiffEntryBase</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special encoder function for the base part of a TIFF entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="99c2f3243b36054e23ed4d0d0acb92f4"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeOffsetEntry" ref="99c2f3243b36054e23ed4d0d0acb92f4" args="(TiffEntryBase *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#99c2f3243b36054e23ed4d0d0acb92f4">encodeOffsetEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special encoder function for an offset entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#9bb14099d61c48278daa4fe76f484a6e">encodeIptc</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special encoder function to encode SubIFD contents to <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> group if it contains primary image data.  <a href="#9bb14099d61c48278daa4fe76f484a6e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="128f79e9ee0a26ed43e3d24b6e88fdb4"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeBigEndianEntry" ref="128f79e9ee0a26ed43e3d24b6e88fdb4" args="(TiffEntryBase *object, const Exifdatum *datum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#128f79e9ee0a26ed43e3d24b6e88fdb4">encodeBigEndianEntry</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *object, const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *datum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Special encoder function for a standard TIFF entry using big endian byte order. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a7f980841679a63fd86e895c64b9268d">add</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *pRootDir, <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *pSourceDir, uint32_t root)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add metadata from image to the TIFF composite.  <a href="#a7f980841679a63fd86e895c64b9268d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a42879df429239e393283f280019d70"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::setDirty" ref="5a42879df429239e393283f280019d70" args="(bool flag=true)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#5a42879df429239e393283f280019d70">setDirty</a> (bool flag=true)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the dirty flag and end of traversing signal. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessors</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9637b61073bbe40e28ceac1ff5e23e6e"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::byteOrder" ref="9637b61073bbe40e28ceac1ff5e23e6e" args="() const " -->
<a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#9637b61073bbe40e28ceac1ff5e23e6e">byteOrder</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the applicable byte order. May be different for the Makernote and the rest of the TIFF entries. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="21461f9cfdd435d24db7e601743a8d84"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::dirty" ref="21461f9cfdd435d24db7e601743a8d84" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#21461f9cfdd435d24db7e601743a8d84">dirty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">True if any tag was deleted or allocated in the process of visiting a TIFF composite tree. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9f70d962c85cd3f20331b261dd73329d"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::writeMethod" ref="9f70d962c85cd3f20331b261dd73329d" args="() const " -->
<a class="el" href="namespaceExiv2.html#abfd4f86ce5d686323498c42cfd6cde7">WriteMethod</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#9f70d962c85cd3f20331b261dd73329d">writeMethod</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the write method used. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
TIFF composite visitor to encode metadata from an image to the TIFF tree. The metadata containers and root element of the tree are supplied in the constructor. Used by <a class="el" href="classExiv2_1_1Internal_1_1TiffParserWorker.html" title="Stateless parser class for data in TIFF format. Images use this class to decode and...">TiffParserWorker</a> to encode the metadata into a TIFF composite. 
<p>
For non-intrusive writing, the encoder is used as a visitor (by passing it to the accept() member of a <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html" title="Interface class for components of a TIFF directory hierarchy (Composite pattern)...">TiffComponent</a>). The composite tree is then traversed and metadata from the image is used to encode each existing component.<p>
For intrusive writing, <a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a7f980841679a63fd86e895c64b9268d" title="Add metadata from image to the TIFF composite.">add()</a> is called, which loops through the metadata and creates and populates corresponding TiffComponents as needed. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="a7f980841679a63fd86e895c64b9268d"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::add" ref="a7f980841679a63fd86e895c64b9268d" args="(TiffComponent *pRootDir, TiffComponent *pSourceDir, uint32_t root)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::TiffEncoder::add           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td>
          <td class="paramname"> <em>pRootDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td>
          <td class="paramname"> <em>pSourceDir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>root</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add metadata from image to the TIFF composite. 
<p>
For each Exif metadatum, the corresponding <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html" title="Interface class for components of a TIFF directory hierarchy (Composite pattern)...">TiffComponent</a> is created if necessary and populated using <a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#6337b077ea2901f35e8fa5654b563f2d" title="Top level encoder function. Determines how to encode each TIFF component. This function...">encodeTiffComponent()</a>. The <a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a7f980841679a63fd86e895c64b9268d" title="Add metadata from image to the TIFF composite.">add()</a> function is used during intrusive writing, to create a new TIFF structure.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>For non-intrusive writing, the encoder is used as a visitor (by passing it to the accept() member of a <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html" title="Interface class for components of a TIFF directory hierarchy (Composite pattern)...">TiffComponent</a>). The composite tree is then traversed and metadata from the image is used to encode each existing component. </dd></dl>

<p>References <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e76a57686b20b3f0db99dd43162e6aef">Exiv2::Internal::TiffComponent::accept()</a>, <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#2f118371ca882315b407ae5d04df6702">Exiv2::Internal::TiffComponent::addPath()</a>, <a class="el" href="exif_8hpp_source.html#l00486">Exiv2::ExifData::begin()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00652">encodeTiffComponent()</a>, <a class="el" href="exif_8hpp_source.html#l00488">Exiv2::ExifData::end()</a>, <a class="el" href="tiffcomposite__int_8hpp_source.html#l00089">Exiv2::Internal::Group::exif</a>, <a class="el" href="tiffimage_8cpp_source.html#l00696">Exiv2::Internal::TiffCreator::getPath()</a>, <a class="el" href="tiffcomposite__int_8hpp_source.html#l00097">Exiv2::Internal::Group::mn</a>, <a class="el" href="tiffvisitor__int_8hpp_source.html#l00202">Exiv2::Internal::TiffFinder::result()</a>, <a class="el" href="classExiv2_1_1Internal_1_1TiffIfdMakernote.html#20548b0d390dd53f9192326853715759">Exiv2::Internal::TiffIfdMakernote::setByteOrder()</a>, <a class="el" href="tiffcomposite__int_8hpp_source.html#l00201">Exiv2::Internal::TiffComponent::tag()</a>, and <a class="el" href="namespaceExiv2_1_1Internal.html#a0d7adb0da670630697603571d40f8ab">Exiv2::Internal::tiffGroupId()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9bb14099d61c48278daa4fe76f484a6e"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeIptc" ref="9bb14099d61c48278daa4fe76f484a6e" args="(TiffEntryBase *object, const Exifdatum *datum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::TiffEncoder::encodeIptc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *&nbsp;</td>
          <td class="paramname"> <em>datum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Special encoder function to encode SubIFD contents to <a class="el" href="classExiv2_1_1Image.html" title="Abstract base class defining the interface for an image. This is the top-level interface...">Image</a> group if it contains primary image data. 
<p>
Special encoder function to encode IPTC data to an IPTCNAA or <a class="el" href="structExiv2_1_1Photoshop.html" title="Helper class, has methods to deal with Photoshop &quot;Information Resource Blocks&quot;...">Photoshop</a> ImageResources tag. 
<p>Referenced by <a class="el" href="tiffvisitor_8cpp_source.html#l00395">TiffEncoder()</a>.</p>

</div>
</div><p>
<a class="anchor" name="6337b077ea2901f35e8fa5654b563f2d"></a><!-- doxytag: member="Exiv2::Internal::TiffEncoder::encodeTiffComponent" ref="6337b077ea2901f35e8fa5654b563f2d" args="(TiffEntryBase *object, const Exifdatum *datum=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::TiffEncoder::encodeTiffComponent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html">TiffEntryBase</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classExiv2_1_1Exifdatum.html">Exifdatum</a> *&nbsp;</td>
          <td class="paramname"> <em>datum</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Top level encoder function. Determines how to encode each TIFF component. This function is called by the visit methods of the encoder as well as the <a class="el" href="classExiv2_1_1Internal_1_1TiffEncoder.html#a7f980841679a63fd86e895c64b9268d" title="Add metadata from image to the TIFF composite.">add()</a> method. 
<p>
If no <em>datum</em> is provided, search the metadata based on tag and group of the <em>object</em>. This is the case if the function is called from a visit method.<p>
Then check if a special encoder function is registered for the tag, and if so use it to encode the <em>object</em>. Else use the callback encoder function at the object (which results in a double-dispatch to the appropriate encoding function of the encoder.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>Object in the TIFF component tree to encode. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>datum</em>&nbsp;</td><td>The corresponding metadatum with the updated value.</td></tr>
  </table>
</dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Encoder functions may use metadata other than <em>datum</em>. </dd></dl>

<p>References <a class="el" href="exif_8hpp_source.html#l00486">Exiv2::ExifData::begin()</a>, <a class="el" href="exif_8hpp_source.html#l00488">Exiv2::ExifData::end()</a>, <a class="el" href="exif_8cpp_source.html#l00418">Exiv2::ExifData::erase()</a>, <a class="el" href="types_8hpp_source.html#l00069">EXV_CALL_MEMBER_FN</a>, <a class="el" href="exif_8cpp_source.html#l00392">Exiv2::ExifData::findKey()</a>, <a class="el" href="tiffcomposite__int_8hpp_source.html#l00203">Exiv2::Internal::TiffComponent::group()</a>, <a class="el" href="exif_8hpp_source.html#l00181">Exiv2::Exifdatum::idx()</a>, <a class="el" href="tags_8hpp_source.html#l00392">Exiv2::ExifKey::idx()</a>, <a class="el" href="tiffcomposite__int_8hpp_source.html#l00431">Exiv2::Internal::TiffEntryBase::idx()</a>, <a class="el" href="tags_8hpp_source.html#l00371">Exiv2::ExifKey::key()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00515">setDirty()</a>, <a class="el" href="tiffcomposite__int_8hpp_source.html#l00201">Exiv2::Internal::TiffComponent::tag()</a>, and <a class="el" href="namespaceExiv2_1_1Internal.html#5ae82ff6f68c1ddbec1efd4000fba870">Exiv2::Internal::tiffGroupName()</a>.</p>

<p>Referenced by <a class="el" href="tiffvisitor_8cpp_source.html#l00903">add()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00647">visitArrayElement()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00532">visitDataEntry()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00527">visitEntry()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00537">visitImageEntry()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00592">visitMnEntry()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00542">visitSizeEntry()</a>, and <a class="el" href="tiffvisitor_8cpp_source.html#l00587">visitSubIfd()</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="tiffvisitor__int_8hpp.html">tiffvisitor_int.hpp</a><li>tiffvisitor.cpp</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Jun 25 15:18:17 2009 for Exiv2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>