Sophie

Sophie

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

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::TiffComponent 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_1TiffComponent.html">TiffComponent</a>
  </div>
</div>
<div class="contents">
<h1>Exiv2::Internal::TiffComponent Class Reference</h1><!-- doxytag: class="Exiv2::Internal::TiffComponent" -->Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;tiffcomposite_int.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Exiv2::Internal::TiffComponent:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1Internal_1_1TiffComponent__inherit__graph.png" border="0" usemap="#Exiv2_1_1Internal_1_1TiffComponent__inherit__map" alt="Inheritance graph"></center>
<map name="Exiv2_1_1Internal_1_1TiffComponent__inherit__map">
<area shape="rect" id="node3" href="classExiv2_1_1Internal_1_1TiffDirectory.html" title="This class models a TIFF directory (Ifd). It is a composite component of the TIFF..." alt="" coords="392,107,712,133"><area shape="rect" id="node5" href="classExiv2_1_1Internal_1_1TiffEntryBase.html" title="This abstract base class provides the common functionality of an IFD directory entry..." alt="" coords="392,157,712,184"><area shape="rect" id="node25" href="classExiv2_1_1Internal_1_1TiffIfdMakernote.html" title="Tiff IFD Makernote. This is a concrete class suitable for all IFD makernotes." alt="" coords="376,208,728,235"><area shape="rect" id="node7" href="classExiv2_1_1Internal_1_1TiffArrayElement.html" title="Element of a TiffArrayEntry. The value of all elements of a TiffArrayEntry must be..." alt="" coords="781,5,1133,32"><area shape="rect" id="node9" href="classExiv2_1_1Internal_1_1TiffArrayEntry.html" title="Composite to model an array of tags, each consisting of values of a given type. Canon..." alt="" coords="792,56,1123,83"><area shape="rect" id="node11" href="classExiv2_1_1Internal_1_1TiffDataEntryBase.html" title="Interface for a standard TIFF IFD entry consisting of a value which is a set of offsets..." alt="" coords="777,107,1137,133"><area shape="rect" id="node17" href="classExiv2_1_1Internal_1_1TiffEntry.html" title="A standard TIFF IFD entry." alt="" coords="817,157,1097,184"><area shape="rect" id="node19" href="classExiv2_1_1Internal_1_1TiffMnEntry.html" title="This class is the basis for Makernote support in TIFF. It contains a pointer to a..." alt="" coords="807,208,1108,235"><area shape="rect" id="node21" href="classExiv2_1_1Internal_1_1TiffSizeEntry.html" title="A TIFF IFD entry containing the size of a data area of a related TiffDataEntry. This..." alt="" coords="797,259,1117,285"><area shape="rect" id="node23" href="classExiv2_1_1Internal_1_1TiffSubIfd.html" title="This class models a TIFF sub&#45;directory (sub&#45;IFD). A sub&#45;IFD is an entry with one..." alt="" coords="812,309,1103,336"><area shape="rect" id="node13" href="classExiv2_1_1Internal_1_1TiffDataEntry.html" title="A standard TIFF IFD entry consisting of a value which is an offset to a data area..." alt="" coords="1193,81,1513,108"><area shape="rect" id="node15" href="classExiv2_1_1Internal_1_1TiffImageEntry.html" title="A standard TIFF IFD entry consisting of a value which is an array of offsets to image..." alt="" coords="1188,132,1519,159"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classExiv2_1_1Internal_1_1TiffComponent-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 Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e6f6d2a03171e797fccd52abde24e3ca"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::AutoPtr" ref="e6f6d2a03171e797fccd52abde24e3ca" args="" -->
typedef std::auto_ptr<br class="typebreak">
&lt; <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html" title="Interface class for components of a TIFF directory hierarchy (Composite pattern)...">TiffComponent</a> auto_ptr type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b7480921cadfd69456e1618635ae056e"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::Components" ref="b7480921cadfd69456e1618635ae056e" args="" -->
typedef std::vector<br class="typebreak">
&lt; <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#b7480921cadfd69456e1618635ae056e">Components</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Container type to hold all metadata. <br></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="4b96d1ec62c9222695f6d20e0431743e"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::TiffComponent" ref="4b96d1ec62c9222695f6d20e0431743e" args="(uint16_t tag, uint16_t group)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#4b96d1ec62c9222695f6d20e0431743e">TiffComponent</a> (uint16_t tag, uint16_t group)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6f79cee44850d6b35607b1337ec5c07d"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::~TiffComponent" ref="6f79cee44850d6b35607b1337ec5c07d" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#6f79cee44850d6b35607b1337ec5c07d">~TiffComponent</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="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#2f118371ca882315b407ae5d04df6702">addPath</a> (uint16_t tag, <a class="el" href="namespaceExiv2_1_1Internal.html#b19b0d2996c210036ff4c659eac717eb">TiffPath</a> &amp;tiffPath)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a TIFF entry <em>tag</em> to the component. Components on the path to the entry are added if they don't exist yet.  <a href="#2f118371ca882315b407ae5d04df6702"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#1825bde24910a87e05777b4bd3c0ea5d">addChild</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a> tiffComponent)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a child to the component. Default is to do nothing.  <a href="#1825bde24910a87e05777b4bd3c0ea5d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#f69c23f599da7c4cd46d7190af0aaac4">addNext</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a> tiffComponent)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a "next" component to the component. Default is to do nothing.  <a href="#f69c23f599da7c4cd46d7190af0aaac4"></a><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_1TiffComponent.html#e76a57686b20b3f0db99dd43162e6aef">accept</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffVisitor.html">TiffVisitor</a> &amp;visitor)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of the composite.  <a href="#e76a57686b20b3f0db99dd43162e6aef"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="58fd0f28208c10d250413636dc760012"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::setStart" ref="58fd0f28208c10d250413636dc760012" args="(const byte *pStart)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#58fd0f28208c10d250413636dc760012">setStart</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *pStart)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a pointer to the start of the binary representation of the component in a memory buffer. The buffer must be allocated and freed outside of this class. <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="bbb9dd77ea9e3696ad7363070699197a"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::tag" ref="bbb9dd77ea9e3696ad7363070699197a" args="() const " -->
uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#bbb9dd77ea9e3696ad7363070699197a">tag</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the tag of this entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="753dd4fe01588ad26dde2164dff7ec23"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::group" ref="753dd4fe01588ad26dde2164dff7ec23" args="() const " -->
uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#753dd4fe01588ad26dde2164dff7ec23">group</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the group id of this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="adffde8164513da9d5dd3328729ffaac"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::start" ref="adffde8164513da9d5dd3328729ffaac" args="() const " -->
<a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#adffde8164513da9d5dd3328729ffaac">start</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the start of the binary representation of the component. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Write support (Manipulators)</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#55718c4016169c10a3f798aa5f578ef2">write</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &amp;imageIdx)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write 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> to a binary image.  <a href="#55718c4016169c10a3f798aa5f578ef2"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Write support (Accessors)</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="785a467e54a53a59858ef2675c209cb4"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::writeData" ref="785a467e54a53a59858ef2675c209cb4" args="(Blob &amp;blob, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &amp;imageIdx) const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#785a467e54a53a59858ef2675c209cb4">writeData</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &amp;imageIdx) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the IFD data of this component to a binary image. Return the number of bytes written. Components derived from <a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html" title="This abstract base class provides the common functionality of an IFD directory entry...">TiffEntryBase</a> implement this method if needed. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e2628c0c912cb171367d75b557dbeb96"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::writeImage" ref="e2628c0c912cb171367d75b557dbeb96" args="(Blob &amp;blob, ByteOrder byteOrder) const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e2628c0c912cb171367d75b557dbeb96">writeImage</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the image data of this component to a binary image. Return the number of bytes written. TIFF components implement this method if needed. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="70cb160a3ee96b6f3d4121e85f3628ab"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::size" ref="70cb160a3ee96b6f3d4121e85f3628ab" args="() const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#70cb160a3ee96b6f3d4121e85f3628ab">size</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size in bytes of the IFD value of this component when written to a binary image. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8a6995093d8709c2f5061512d0d0f21f"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::count" ref="8a6995093d8709c2f5061512d0d0f21f" args="() const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#8a6995093d8709c2f5061512d0d0f21f">count</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of components in this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5c6eabeeb172dd41745f6713bcfcb34f"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::sizeData" ref="5c6eabeeb172dd41745f6713bcfcb34f" args="() const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#5c6eabeeb172dd41745f6713bcfcb34f">sizeData</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size in bytes of the IFD data of this component when written to a binary image. This is a support function for <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#55718c4016169c10a3f798aa5f578ef2" title="Write a TiffComponent to a binary image.">write()</a>. Components derived from <a class="el" href="classExiv2_1_1Internal_1_1TiffEntryBase.html" title="This abstract base class provides the common functionality of an IFD directory entry...">TiffEntryBase</a> implement this method corresponding to their implementation of <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#785a467e54a53a59858ef2675c209cb4" title="Write the IFD data of this component to a binary image. Return the number of bytes...">writeData()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="192645bb7f6f48a8e4bbf0fc330555e4"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::sizeImage" ref="192645bb7f6f48a8e4bbf0fc330555e4" args="() const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#192645bb7f6f48a8e4bbf0fc330555e4">sizeImage</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size in bytes of the image data of this component when written to a binary image. This is a support function for <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#55718c4016169c10a3f798aa5f578ef2" title="Write a TiffComponent to a binary image.">write()</a>. TIFF components implement this method corresponding to their implementation of <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e2628c0c912cb171367d75b557dbeb96" title="Write the image data of this component to a binary image. Return the number of bytes...">writeImage()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cb30ce2a6d9d288797d789908e776a12"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::idx" ref="cb30ce2a6d9d288797d789908e776a12" args="() const " -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#cb30ce2a6d9d288797d789908e776a12">idx</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the unique id of the entry in the image. <br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></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="d315b7ec7764f7bbc7ee2045014ed7c0"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doAddPath" ref="d315b7ec7764f7bbc7ee2045014ed7c0" args="(uint16_t, TiffPath &amp;)" -->
virtual <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#d315b7ec7764f7bbc7ee2045014ed7c0">doAddPath</a> (uint16_t, <a class="el" href="namespaceExiv2_1_1Internal.html#b19b0d2996c210036ff4c659eac717eb">TiffPath</a> &amp;)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#2f118371ca882315b407ae5d04df6702" title="Add a TIFF entry tag to the component. Components on the path to the entry are added...">addPath()</a>. The default implementation does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="306832fb08c00b94e06d5c86cffff770"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doAddChild" ref="306832fb08c00b94e06d5c86cffff770" args="(AutoPtr)" -->
virtual <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#306832fb08c00b94e06d5c86cffff770">doAddChild</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#1825bde24910a87e05777b4bd3c0ea5d" title="Add a child to the component. Default is to do nothing.">addChild()</a>. The default implementation does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0a5f9539d5d74a99ca307e1ee2d60074"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doAddNext" ref="0a5f9539d5d74a99ca307e1ee2d60074" args="(AutoPtr)" -->
virtual <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#0a5f9539d5d74a99ca307e1ee2d60074">doAddNext</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#f69c23f599da7c4cd46d7190af0aaac4" title="Add a &quot;next&quot; component to the component. Default is to do nothing.">addNext()</a>. The default implementation does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="82b7887062080957e73100840ad6f4ff"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doAccept" ref="82b7887062080957e73100840ad6f4ff" args="(TiffVisitor &amp;visitor)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#82b7887062080957e73100840ad6f4ff">doAccept</a> (<a class="el" href="classExiv2_1_1Internal_1_1TiffVisitor.html">TiffVisitor</a> &amp;visitor)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e76a57686b20b3f0db99dd43162e6aef" title="Interface to accept visitors (Visitor pattern). Visitors can perform operations on...">accept()</a>. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Write support (Manipulators)</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c7f7030bd6d9072664b91f36329d9cd4"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doWrite" ref="c7f7030bd6d9072664b91f36329d9cd4" args="(Blob &amp;blob, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &amp;imageIdx)=0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#c7f7030bd6d9072664b91f36329d9cd4">doWrite</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &amp;imageIdx)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#55718c4016169c10a3f798aa5f578ef2" title="Write a TiffComponent to a binary image.">write()</a>. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Write support (Accessors)</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4bd9449257039e684c3aef280b6cf6b9"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doWriteData" ref="4bd9449257039e684c3aef280b6cf6b9" args="(Blob &amp;blob, ByteOrder byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &amp;imageIdx) const =0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#4bd9449257039e684c3aef280b6cf6b9">doWriteData</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, int32_t offset, uint32_t dataIdx, uint32_t &amp;imageIdx) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#785a467e54a53a59858ef2675c209cb4" title="Write the IFD data of this component to a binary image. Return the number of bytes...">writeData()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d595632c4439da2dc5764a8da98c5ae4"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doWriteImage" ref="d595632c4439da2dc5764a8da98c5ae4" args="(Blob &amp;blob, ByteOrder byteOrder) const =0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#d595632c4439da2dc5764a8da98c5ae4">doWriteImage</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e2628c0c912cb171367d75b557dbeb96" title="Write the image data of this component to a binary image. Return the number of bytes...">writeImage()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7f550c5ab52eb1b12b5b1521fdf0f757"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doSize" ref="7f550c5ab52eb1b12b5b1521fdf0f757" args="() const =0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#7f550c5ab52eb1b12b5b1521fdf0f757">doSize</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#70cb160a3ee96b6f3d4121e85f3628ab" title="Return the size in bytes of the IFD value of this component when written to a binary...">size()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eb547ffe6a8f14dddf761464af077f00"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doCount" ref="eb547ffe6a8f14dddf761464af077f00" args="() const =0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#eb547ffe6a8f14dddf761464af077f00">doCount</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#8a6995093d8709c2f5061512d0d0f21f" title="Return the number of components in this component.">count()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="534e05a5ee70714ec4d29da33db3dee6"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doSizeData" ref="534e05a5ee70714ec4d29da33db3dee6" args="() const =0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#534e05a5ee70714ec4d29da33db3dee6">doSizeData</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#5c6eabeeb172dd41745f6713bcfcb34f" title="Return the size in bytes of the IFD data of this component when written to a binary...">sizeData()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b9eb2ed551e3ca3813bf56bc2c674451"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::doSizeImage" ref="b9eb2ed551e3ca3813bf56bc2c674451" args="() const =0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#b9eb2ed551e3ca3813bf56bc2c674451">doSizeImage</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#192645bb7f6f48a8e4bbf0fc330555e4" title="Return the size in bytes of the image data of this component when written to a binary...">sizeImage()</a>. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Interface class for components of a TIFF directory hierarchy (Composite pattern). Both TIFF directories as well as entries implement this interface. A component can be uniquely identified by a tag, group tupel. This class is implemented as a NVI (Non-Virtual Interface) and it has an interface for visitors (Visitor pattern) to perform operations on all components. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e76a57686b20b3f0db99dd43162e6aef"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::accept" ref="e76a57686b20b3f0db99dd43162e6aef" args="(TiffVisitor &amp;visitor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::TiffComponent::accept           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffVisitor.html">TiffVisitor</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>visitor</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Interface to accept visitors (Visitor pattern). Visitors can perform operations on all components of the composite. 
<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>visitor</em>&nbsp;</td><td>The visitor. </td></tr>
  </table>
</dl>

<p>Referenced by <a class="el" href="tiffvisitor_8cpp_source.html#l00903">Exiv2::Internal::TiffEncoder::add()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00757">Exiv2::Internal::TiffEncoder::encodeImageEntry()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l01020">Exiv2::Internal::TiffReader::readDataEntryBase()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00175">Exiv2::Internal::TiffDecoder::TiffDecoder()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l00395">Exiv2::Internal::TiffEncoder::TiffEncoder()</a>, <a class="el" href="tiffvisitor_8cpp_source.html#l01207">Exiv2::Internal::TiffReader::visitMnEntry()</a>, and <a class="el" href="tiffvisitor_8cpp_source.html#l01048">Exiv2::Internal::TiffReader::visitSizeEntry()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1825bde24910a87e05777b4bd3c0ea5d"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::addChild" ref="1825bde24910a87e05777b4bd3c0ea5d" args="(AutoPtr tiffComponent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a>* Exiv2::Internal::TiffComponent::addChild           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a>&nbsp;</td>
          <td class="paramname"> <em>tiffComponent</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a child to the component. Default is to do nothing. 
<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>tiffComponent</em>&nbsp;</td><td>Auto pointer to the component to add. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return a pointer to the newly added child element or 0. </dd></dl>

</div>
</div><p>
<a class="anchor" name="f69c23f599da7c4cd46d7190af0aaac4"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::addNext" ref="f69c23f599da7c4cd46d7190af0aaac4" args="(AutoPtr tiffComponent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a>* Exiv2::Internal::TiffComponent::addNext           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html#e6f6d2a03171e797fccd52abde24e3ca">AutoPtr</a>&nbsp;</td>
          <td class="paramname"> <em>tiffComponent</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add a "next" component to the component. Default is to do nothing. 
<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>tiffComponent</em>&nbsp;</td><td>Auto pointer to the component to add. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Return a pointer to the newly added "next" element or 0. </dd></dl>

</div>
</div><p>
<a class="anchor" name="2f118371ca882315b407ae5d04df6702"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::addPath" ref="2f118371ca882315b407ae5d04df6702" args="(uint16_t tag, TiffPath &amp;tiffPath)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html">TiffComponent</a>* Exiv2::Internal::TiffComponent::addPath           </td>
          <td>(</td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2_1_1Internal.html#b19b0d2996c210036ff4c659eac717eb">TiffPath</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>tiffPath</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 a TIFF entry <em>tag</em> to the component. Components on the path to the entry are added if they don't exist yet. 
<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>tag</em>&nbsp;</td><td>The tag of the new entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tiffPath</em>&nbsp;</td><td>A path from the TIFF root element to a TIFF entry.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the newly added TIFF entry. </dd></dl>

<p>Referenced by <a class="el" href="tiffvisitor_8cpp_source.html#l00903">Exiv2::Internal::TiffEncoder::add()</a>.</p>

</div>
</div><p>
<a class="anchor" name="55718c4016169c10a3f798aa5f578ef2"></a><!-- doxytag: member="Exiv2::Internal::TiffComponent::write" ref="55718c4016169c10a3f798aa5f578ef2" args="(Blob &amp;blob, ByteOrder byteOrder, int32_t offset, uint32_t valueIdx, uint32_t dataIdx, uint32_t &amp;imageIdx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t Exiv2::Internal::TiffComponent::write           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>blob</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&nbsp;</td>
          <td class="paramname"> <em>byteOrder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>valueIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>dataIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t &amp;&nbsp;</td>
          <td class="paramname"> <em>imageIdx</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write 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> to a binary image. 
<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>blob</em>&nbsp;</td><td>Binary image to append the <a class="el" href="classExiv2_1_1Internal_1_1TiffComponent.html" title="Interface class for components of a TIFF directory hierarchy (Composite pattern)...">TiffComponent</a> to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byteOrder</em>&nbsp;</td><td>Applicable byte order (little or big endian). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>Offset from the start of the image (TIFF header) to the component. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>valueIdx</em>&nbsp;</td><td>Index of the component to be written relative to offset. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dataIdx</em>&nbsp;</td><td>Index of the data area of the component relative to offset. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>imageIdx</em>&nbsp;</td><td>Index of the image data area relative to offset. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes written to the blob including all nested components. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>If the component cannot be written. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="tiffcomposite__int_8hpp.html">tiffcomposite_int.hpp</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Thu Jun 25 15:18:14 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>