Sophie

Sophie

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

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::CiffComponent 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_1CiffComponent.html">CiffComponent</a>
  </div>
</div>
<div class="contents">
<h1>Exiv2::Internal::CiffComponent Class Reference</h1><!-- doxytag: class="Exiv2::Internal::CiffComponent" -->Interface class for components of the CIFF directory hierarchy of a CRW (Canon Raw data) image. Both CIFF directories as well as entries implement this interface. This class is implemented as NVI (non-virtual interface).  
<a href="#_details">More...</a>
<p>
<code>#include &lt;crwimage_int.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Exiv2::Internal::CiffComponent:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1Internal_1_1CiffComponent__inherit__graph.png" border="0" usemap="#Exiv2_1_1Internal_1_1CiffComponent__inherit__map" alt="Inheritance graph"></center>
<map name="Exiv2_1_1Internal_1_1CiffComponent__inherit__map">
<area shape="rect" id="node3" href="classExiv2_1_1Internal_1_1CiffDirectory.html" title="This class models a CIFF directory of a CRW (Canon Raw data) image." alt="" coords="5,80,325,107"><area shape="rect" id="node5" href="classExiv2_1_1Internal_1_1CiffEntry.html" title="This class models one directory entry of a CIFF directory of a CRW (Canon Raw data)..." alt="" coords="349,80,629,107"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classExiv2_1_1Internal_1_1CiffComponent-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="057050ea74eefe38ee677a6db3136d83"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::AutoPtr" ref="057050ea74eefe38ee677a6db3136d83" args="" -->
typedef std::auto_ptr<br class="typebreak">
&lt; <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#057050ea74eefe38ee677a6db3136d83">AutoPtr</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html" title="Interface class for components of the CIFF directory hierarchy of a CRW (Canon Raw...">CiffComponent</a> auto_ptr type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="14200c5e50edda33b64eff5c9229c187"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::Components" ref="14200c5e50edda33b64eff5c9229c187" args="" -->
typedef std::vector<br class="typebreak">
&lt; <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#14200c5e50edda33b64eff5c9229c187">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="c118a539300aa707f77692631d36843d"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::CiffComponent" ref="c118a539300aa707f77692631d36843d" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#c118a539300aa707f77692631d36843d">CiffComponent</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="241ef11ce8db1b56f059729fb99b1863"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::CiffComponent" ref="241ef11ce8db1b56f059729fb99b1863" args="(uint16_t tag, uint16_t dir)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#241ef11ce8db1b56f059729fb99b1863">CiffComponent</a> (uint16_t tag, uint16_t dir)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor taking a tag and directory. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="534e7fa5cf79c6a843069f001d34eb26"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::~CiffComponent" ref="534e7fa5cf79c6a843069f001d34eb26" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#534e7fa5cf79c6a843069f001d34eb26">~CiffComponent</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="e56e6ee4b1da653b6d44ef9f0969e025"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::add" ref="e56e6ee4b1da653b6d44ef9f0969e025" args="(AutoPtr component)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#e56e6ee4b1da653b6d44ef9f0969e025">add</a> (<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#057050ea74eefe38ee677a6db3136d83">AutoPtr</a> component)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a component to the composition. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#f019bd49e7c4a38c644f4d9b0e99bff6">add</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#a296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add <em>crwTagId</em> to the parse tree, if it doesn't exist yet. <em>crwDirs</em> contains the path of subdirectories, starting with the root directory, leading to <em>crwTagId</em>. Directories that don't exist yet are added along the way. Returns a pointer to the newly added component.  <a href="#f019bd49e7c4a38c644f4d9b0e99bff6"></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_1CiffComponent.html#796cd02123f8f107f98c0e3bb5221208">remove</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#a296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove <em>crwTagId</em> from the parse tree, if it exists yet. <em>crwDirs</em> contains the path of subdirectories, starting with the root directory, leading to <em>crwTagId</em>.  <a href="#796cd02123f8f107f98c0e3bb5221208"></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_1CiffComponent.html#6a7574b05379d86c2cc71ec5aa18b7b6">read</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *pData, uint32_t size, uint32_t start, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a component from a data buffer.  <a href="#6a7574b05379d86c2cc71ec5aa18b7b6"></a><br></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_1CiffComponent.html#28f3354567a79aed51d111ef51fa5f58">write</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, uint32_t offset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the metadata from the raw metadata component to the binary image <em>blob</em>. This method may append to the blob.  <a href="#28f3354567a79aed51d111ef51fa5f58"></a><br></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_1CiffComponent.html#185e1f0f6064990dd1a5c6b9164a0e0d">writeValueData</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, uint32_t offset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes the entry's value if size is larger than eight bytes. If needed, the value is padded with one 0 byte to make the number of bytes written to the blob even. The offset of the component is set to the offset passed in.  <a href="#185e1f0f6064990dd1a5c6b9164a0e0d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7ef2788e0125bd87717e1c04d27209e7"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::setDir" ref="7ef2788e0125bd87717e1c04d27209e7" args="(uint16_t dir)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#7ef2788e0125bd87717e1c04d27209e7">setDir</a> (uint16_t dir)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the directory tag for this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1847aa0d7f71378eae491af41a337d2"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::setValue" ref="a1847aa0d7f71378eae491af41a337d2" args="(DataBuf buf)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a1847aa0d7f71378eae491af41a337d2">setValue</a> (<a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a> buf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the data value of the entry. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessors</div></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_1CiffComponent.html#309a5447a6a6361e90cc69b6fba867ba">decode</a> (<a class="el" href="classExiv2_1_1Image.html">Image</a> &amp;image, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decode metadata from the component and add it to <em>image</em>.  <a href="#309a5447a6a6361e90cc69b6fba867ba"></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_1CiffComponent.html#cd6b00278cead8f8fc514c71804bcb2f">print</a> (std::ostream &amp;os, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, const std::string &amp;prefix=&quot;&quot;) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print debug info about a component to <em>os</em>.  <a href="#cd6b00278cead8f8fc514c71804bcb2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9fad54e734aff6aab957dae16a8afa03"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::writeDirEntry" ref="9fad54e734aff6aab957dae16a8afa03" args="(Blob &amp;blob, ByteOrder byteOrder) const " -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#9fad54e734aff6aab957dae16a8afa03">writeDirEntry</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 a directory entry for the component to the <em>blob</em>. If the size of the data is not larger than 8 bytes, the data is written to the directory entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c60ae649ccb6bd44f04979c4f6e33252"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::dir" ref="c60ae649ccb6bd44f04979c4f6e33252" args="() const " -->
uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#c60ae649ccb6bd44f04979c4f6e33252">dir</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the tag of the directory containing this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="78c07cf9a7a3718259a8d9ed7530b3a4"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::tag" ref="78c07cf9a7a3718259a8d9ed7530b3a4" args="() const " -->
uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#78c07cf9a7a3718259a8d9ed7530b3a4">tag</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the tag of this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f823b6f819f1d6b55d88fcd691c8a37d"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::empty" ref="f823b6f819f1d6b55d88fcd691c8a37d" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#f823b6f819f1d6b55d88fcd691c8a37d">empty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if the component is empty, else false. <br></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_1CiffComponent.html#38e99214c0866c9fd683b621ec3590f5">size</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the data size of this component.  <a href="#38e99214c0866c9fd683b621ec3590f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3dd5fb1770b0e6c8f9b08a51c958a55f"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::offset" ref="3dd5fb1770b0e6c8f9b08a51c958a55f" args="() const " -->
uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#3dd5fb1770b0e6c8f9b08a51c958a55f">offset</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the offset to the data from the start of the directory. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a863e648904d2a14a7efaad7e6458212"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::pData" ref="a863e648904d2a14a7efaad7e6458212" args="() const " -->
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_1CiffComponent.html#a863e648904d2a14a7efaad7e6458212">pData</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer to the data area of this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d370128bddf89b0c4ec43783f3e7bdae"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::tagId" ref="d370128bddf89b0c4ec43783f3e7bdae" args="() const " -->
uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#d370128bddf89b0c4ec43783f3e7bdae">tagId</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the tag id of this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c0742c8b3d210200b965a277070d1b64"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::typeId" ref="c0742c8b3d210200b965a277070d1b64" args="() const " -->
<a class="el" href="namespaceExiv2.html#5153319711f35fe81cbc13f4b852450c">TypeId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#c0742c8b3d210200b965a277070d1b64">typeId</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the type id of thi component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e0f4e20439ea306bb5decd2bfd44004e"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::dataLocation" ref="e0f4e20439ea306bb5decd2bfd44004e" args="() const " -->
<a class="el" href="namespaceExiv2_1_1Internal.html#8e444d08b1880dabd0190afdacdb42a9">DataLocId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#e0f4e20439ea306bb5decd2bfd44004e">dataLocation</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the data location for this component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="106b9412754841caaf95f4220dc45771"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::findComponent" ref="106b9412754841caaf95f4220dc45771" args="(uint16_t crwTagId, uint16_t crwDir) const " -->
<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#106b9412754841caaf95f4220dc45771">findComponent</a> (uint16_t crwTagId, uint16_t crwDir) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Finds <em>crwTagId</em> in directory <em>crwDir</em>, returning a pointer to the component or 0 if not found. <br></td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2adef06fdae2c0178603b5015e798120"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::typeId" ref="2adef06fdae2c0178603b5015e798120" args="(uint16_t tag)" -->
static <a class="el" href="namespaceExiv2.html#5153319711f35fe81cbc13f4b852450c">TypeId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#2adef06fdae2c0178603b5015e798120">typeId</a> (uint16_t tag)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the type id for a tag. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8a1296c8299343399ab9eff9d0e6583"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::dataLocation" ref="a8a1296c8299343399ab9eff9d0e6583" args="(uint16_t tag)" -->
static <a class="el" href="namespaceExiv2_1_1Internal.html#8e444d08b1880dabd0190afdacdb42a9">DataLocId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a8a1296c8299343399ab9eff9d0e6583">dataLocation</a> (uint16_t tag)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the data location id for a tag. <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="cce7704691a48c5c1f1e8af4b98e5532"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doAdd" ref="cce7704691a48c5c1f1e8af4b98e5532" args="(AutoPtr component)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#cce7704691a48c5c1f1e8af4b98e5532">doAdd</a> (<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#057050ea74eefe38ee677a6db3136d83">AutoPtr</a> component)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#e56e6ee4b1da653b6d44ef9f0969e025" title="Add a component to the composition.">add()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8c72fc7369b5772b2c0ae977c84ed37d"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doAdd" ref="8c72fc7369b5772b2c0ae977c84ed37d" args="(CrwDirs &amp;crwDirs, uint16_t crwTagId)" -->
virtual <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#8c72fc7369b5772b2c0ae977c84ed37d">doAdd</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#a296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#e56e6ee4b1da653b6d44ef9f0969e025" title="Add a component to the composition.">add()</a>. The default implementation does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4878acf471cbc8680a4111439790c2ef"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doRemove" ref="4878acf471cbc8680a4111439790c2ef" args="(CrwDirs &amp;crwDirs, uint16_t crwTagId)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#4878acf471cbc8680a4111439790c2ef">doRemove</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#a296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#796cd02123f8f107f98c0e3bb5221208" title="Remove crwTagId from the parse tree, if it exists yet. crwDirs contains the path...">remove()</a>. The default implementation does nothing. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b814e06f56d1db89f0828e319a921c50"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doRead" ref="b814e06f56d1db89f0828e319a921c50" args="(const byte *pData, uint32_t size, uint32_t start, ByteOrder byteOrder)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#b814e06f56d1db89f0828e319a921c50">doRead</a> (const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *pData, uint32_t size, uint32_t start, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#6a7574b05379d86c2cc71ec5aa18b7b6" title="Read a component from a data buffer.">read()</a>. The default implementation reads a directory entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="46c9e097d4974da18d891ceab43b5bf3"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doWrite" ref="46c9e097d4974da18d891ceab43b5bf3" args="(Blob &amp;blob, ByteOrder byteOrder, uint32_t offset)=0" -->
virtual uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#46c9e097d4974da18d891ceab43b5bf3">doWrite</a> (<a class="el" href="namespaceExiv2.html#6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, uint32_t offset)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#28f3354567a79aed51d111ef51fa5f58" title="Write the metadata from the raw metadata component to the binary image blob. This...">write()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3bf3b862b5d5d5a96cb035177aabae0d"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::setSize" ref="3bf3b862b5d5d5a96cb035177aabae0d" args="(uint32_t size)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#3bf3b862b5d5d5a96cb035177aabae0d">setSize</a> (uint32_t size)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the size of the data area. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7203038d5cd748c8bbd319443291b972"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::setOffset" ref="7203038d5cd748c8bbd319443291b972" args="(uint32_t offset)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#7203038d5cd748c8bbd319443291b972">setOffset</a> (uint32_t offset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the offset for this component. <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="78f1afe3715944c885e80e666ccbede0"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doDecode" ref="78f1afe3715944c885e80e666ccbede0" args="(Image &amp;image, ByteOrder byteOrder) const =0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#78f1afe3715944c885e80e666ccbede0">doDecode</a> (<a class="el" href="classExiv2_1_1Image.html">Image</a> &amp;image, <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_1CiffComponent.html#309a5447a6a6361e90cc69b6fba867ba" title="Decode metadata from the component and add it to image.">decode()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f17cf974ed679b7c0b9881d37a522600"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doPrint" ref="f17cf974ed679b7c0b9881d37a522600" args="(std::ostream &amp;os, ByteOrder byteOrder, const std::string &amp;prefix) const " -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#f17cf974ed679b7c0b9881d37a522600">doPrint</a> (std::ostream &amp;os, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, const std::string &amp;prefix) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#cd6b00278cead8f8fc514c71804bcb2f" title="Print debug info about a component to os.">print()</a>. The default implementation prints the entry. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4eda8546882afa34b99d2f2cbd92eb0a"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doEmpty" ref="4eda8546882afa34b99d2f2cbd92eb0a" args="() const " -->
virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#4eda8546882afa34b99d2f2cbd92eb0a">doEmpty</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#f823b6f819f1d6b55d88fcd691c8a37d" title="Return true if the component is empty, else false.">empty()</a>. Default implementation returns true if size is 0. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="acba737d1c00b34512982422383b297c"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::doFindComponent" ref="acba737d1c00b34512982422383b297c" args="(uint16_t crwTagId, uint16_t crwDir) const " -->
virtual <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#acba737d1c00b34512982422383b297c">doFindComponent</a> (uint16_t crwTagId, uint16_t crwDir) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#106b9412754841caaf95f4220dc45771" title="Finds crwTagId in directory crwDir, returning a pointer to the component or 0 if...">findComponent()</a>. The default implementation checks the entry. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Interface class for components of the CIFF directory hierarchy of a CRW (Canon Raw data) image. Both CIFF directories as well as entries implement this interface. This class is implemented as NVI (non-virtual interface). <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="f019bd49e7c4a38c644f4d9b0e99bff6"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::add" ref="f019bd49e7c4a38c644f4d9b0e99bff6" args="(CrwDirs &amp;crwDirs, uint16_t crwTagId)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> * Exiv2::Internal::CiffComponent::add           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2_1_1Internal.html#a296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>crwDirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>crwTagId</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 <em>crwTagId</em> to the parse tree, if it doesn't exist yet. <em>crwDirs</em> contains the path of subdirectories, starting with the root directory, leading to <em>crwTagId</em>. Directories that don't exist yet are added along the way. Returns a pointer to the newly added component. 
<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>crwDirs</em>&nbsp;</td><td>Subdirectory path from root to the subdirectory containing the tag to be added. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>crwTagId</em>&nbsp;</td><td><a class="el" href="namespaceExiv2_1_1Internal_1_1Tag.html">Tag</a> to be added.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the newly added component. </dd></dl>

<p>References <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#cce7704691a48c5c1f1e8af4b98e5532">doAdd()</a>.</p>

</div>
</div><p>
<a class="anchor" name="309a5447a6a6361e90cc69b6fba867ba"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::decode" ref="309a5447a6a6361e90cc69b6fba867ba" args="(Image &amp;image, ByteOrder byteOrder) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::CiffComponent::decode           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classExiv2_1_1Image.html">Image</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>image</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><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Decode metadata from the component and add it to <em>image</em>. 
<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>image</em>&nbsp;</td><td><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> to add metadata to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byteOrder</em>&nbsp;</td><td>Byte order </td></tr>
  </table>
</dl>

<p>References <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#78f1afe3715944c885e80e666ccbede0">doDecode()</a>.</p>

<p>Referenced by <a class="el" href="crwimage_8cpp_source.html#l00472">Exiv2::Internal::CiffHeader::decode()</a>.</p>

</div>
</div><p>
<a class="anchor" name="cd6b00278cead8f8fc514c71804bcb2f"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::print" ref="cd6b00278cead8f8fc514c71804bcb2f" args="(std::ostream &amp;os, ByteOrder byteOrder, const std::string &amp;prefix=&quot;&quot;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::CiffComponent::print           </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&nbsp;</td>
          <td class="paramname"> <em>os</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">const std::string &amp;&nbsp;</td>
          <td class="paramname"> <em>prefix</em> = <code>&quot;&quot;</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print debug info about a component to <em>os</em>. 
<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>os</em>&nbsp;</td><td>Output stream to write to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byteOrder</em>&nbsp;</td><td>Byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefix</em>&nbsp;</td><td>Prefix to be written before each line of output </td></tr>
  </table>
</dl>

<p>References <a class="el" href="crwimage_8cpp_source.html#l00666">doPrint()</a>.</p>

<p>Referenced by <a class="el" href="crwimage_8cpp_source.html#l00651">Exiv2::Internal::CiffHeader::print()</a>.</p>

</div>
</div><p>
<a class="anchor" name="6a7574b05379d86c2cc71ec5aa18b7b6"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::read" ref="6a7574b05379d86c2cc71ec5aa18b7b6" args="(const byte *pData, uint32_t size, uint32_t start, ByteOrder byteOrder)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::CiffComponent::read           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>start</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><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Read a component from a data buffer. 
<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>pData</em>&nbsp;</td><td>Pointer to the data buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>Number of bytes in the data buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>Component starts at <em>pData</em> + <em>start</em>. </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>
  </table>
</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 parsed. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="crwimage_8cpp_source.html#l00401">doRead()</a>.</p>

</div>
</div><p>
<a class="anchor" name="796cd02123f8f107f98c0e3bb5221208"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::remove" ref="796cd02123f8f107f98c0e3bb5221208" args="(CrwDirs &amp;crwDirs, uint16_t crwTagId)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Exiv2::Internal::CiffComponent::remove           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2_1_1Internal.html#a296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>crwDirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>crwTagId</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove <em>crwTagId</em> from the parse tree, if it exists yet. <em>crwDirs</em> contains the path of subdirectories, starting with the root directory, leading to <em>crwTagId</em>. 
<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>crwDirs</em>&nbsp;</td><td>Subdirectory path from root to the subdirectory containing the tag to be removed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>crwTagId</em>&nbsp;</td><td><a class="el" href="namespaceExiv2_1_1Internal_1_1Tag.html">Tag</a> to be removed. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="crwimage_8cpp_source.html#l00877">doRemove()</a>.</p>

<p>Referenced by <a class="el" href="crwimage_8cpp_source.html#l00860">Exiv2::Internal::CiffHeader::remove()</a>.</p>

</div>
</div><p>
<a class="anchor" name="38e99214c0866c9fd683b621ec3590f5"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::size" ref="38e99214c0866c9fd683b621ec3590f5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t Exiv2::Internal::CiffComponent::size           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the data size of this component. 
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>If the data is contained in the directory entry itself, this method returns 8, which is the maximum number of data bytes this component can have. The actual size, i.e., used data bytes, may be less than 8. </dd></dl>

<p>Referenced by <a class="el" href="crwimage_8cpp_source.html#l00173">Exiv2::CrwParser::decode()</a>.</p>

</div>
</div><p>
<a class="anchor" name="28f3354567a79aed51d111ef51fa5f58"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::write" ref="28f3354567a79aed51d111ef51fa5f58" args="(Blob &amp;blob, ByteOrder byteOrder, uint32_t offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t Exiv2::Internal::CiffComponent::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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>offset</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 the metadata from the raw metadata component to the binary image <em>blob</em>. This method may append to the blob. 
<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 add metadata to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byteOrder</em>&nbsp;</td><td>Byte order </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>Current offset</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>New offset </dd></dl>

<p>References <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#46c9e097d4974da18d891ceab43b5bf3">doWrite()</a>.</p>

<p>Referenced by <a class="el" href="crwimage_8cpp_source.html#l00497">Exiv2::Internal::CiffHeader::write()</a>.</p>

</div>
</div><p>
<a class="anchor" name="185e1f0f6064990dd1a5c6b9164a0e0d"></a><!-- doxytag: member="Exiv2::Internal::CiffComponent::writeValueData" ref="185e1f0f6064990dd1a5c6b9164a0e0d" args="(Blob &amp;blob, uint32_t offset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t Exiv2::Internal::CiffComponent::writeValueData           </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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Writes the entry's value if size is larger than eight bytes. If needed, the value is padded with one 0 byte to make the number of bytes written to the blob even. The offset of the component is set to the offset passed in. 
<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>The binary image to write to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>Offset from the start of the directory for this entry.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>New offset. </dd></dl>

<p>References <a class="el" href="image_8cpp_source.html#l00372">Exiv2::append()</a>, <a class="el" href="crwimage__int_8hpp_source.html#l00251">dataLocation()</a>, and <a class="el" href="crwimage__int_8hpp_source.html#l00245">tagId()</a>.</p>

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