Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-updates > by-pkgid > 12cd2b60e7ffa1b93f26cacdd7197eb9 > files > 294

exiv2-doc-0.24-5.1.mga5.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>Exiv2: Exiv2::Internal::CiffComponent Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Exiv2
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;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>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceExiv2.html">Exiv2</a></li><li class="navelem"><a class="el" href="namespaceExiv2_1_1Internal.html">Internal</a></li><li class="navelem"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classExiv2_1_1Internal_1_1CiffComponent-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Exiv2::Internal::CiffComponent Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p>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="classExiv2_1_1Internal_1_1CiffComponent.html#details">More...</a></p>

<p><code>#include &lt;crwimage_int.hpp&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Exiv2::Internal::CiffComponent:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classExiv2_1_1Internal_1_1CiffComponent__inherit__graph.png" border="0" usemap="#Exiv2_1_1Internal_1_1CiffComponent_inherit__map" alt="Inheritance graph"/></div>
<map name="Exiv2_1_1Internal_1_1CiffComponent_inherit__map" id="Exiv2_1_1Internal_1_1CiffComponent_inherit__map">
<area shape="rect" id="node2" 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,328,107"/><area shape="rect" id="node3" href="classExiv2_1_1Internal_1_1CiffEntry.html" title="This class models one directory entry of a CIFF directory of a CRW (Canon Raw data) image..." alt="" coords="352,80,635,107"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a057050ea74eefe38ee677a6db3136d83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a057050ea74eefe38ee677a6db3136d83"></a>
typedef std::auto_ptr<br class="typebreak" />
&lt; <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a057050ea74eefe38ee677a6db3136d83">AutoPtr</a></td></tr>
<tr class="memdesc:a057050ea74eefe38ee677a6db3136d83"><td class="mdescLeft">&#160;</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 data) image...">CiffComponent</a> auto_ptr type. <br /></td></tr>
<tr class="separator:a057050ea74eefe38ee677a6db3136d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14200c5e50edda33b64eff5c9229c187"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a14200c5e50edda33b64eff5c9229c187"></a>
typedef std::vector<br class="typebreak" />
&lt; <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a14200c5e50edda33b64eff5c9229c187">Components</a></td></tr>
<tr class="memdesc:a14200c5e50edda33b64eff5c9229c187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Container type to hold all metadata. <br /></td></tr>
<tr class="separator:a14200c5e50edda33b64eff5c9229c187"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Creators</div></td></tr>
<tr class="memitem:ac118a539300aa707f77692631d36843d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac118a539300aa707f77692631d36843d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ac118a539300aa707f77692631d36843d">CiffComponent</a> ()</td></tr>
<tr class="memdesc:ac118a539300aa707f77692631d36843d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:ac118a539300aa707f77692631d36843d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a241ef11ce8db1b56f059729fb99b1863"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a241ef11ce8db1b56f059729fb99b1863"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a241ef11ce8db1b56f059729fb99b1863">CiffComponent</a> (uint16_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a78c07cf9a7a3718259a8d9ed7530b3a4">tag</a>, uint16_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ac60ae649ccb6bd44f04979c4f6e33252">dir</a>)</td></tr>
<tr class="memdesc:a241ef11ce8db1b56f059729fb99b1863"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor taking a tag and directory. <br /></td></tr>
<tr class="separator:a241ef11ce8db1b56f059729fb99b1863"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a534e7fa5cf79c6a843069f001d34eb26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a534e7fa5cf79c6a843069f001d34eb26"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a534e7fa5cf79c6a843069f001d34eb26">~CiffComponent</a> ()</td></tr>
<tr class="memdesc:a534e7fa5cf79c6a843069f001d34eb26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor. <br /></td></tr>
<tr class="separator:a534e7fa5cf79c6a843069f001d34eb26"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a2adef06fdae2c0178603b5015e798120"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2adef06fdae2c0178603b5015e798120"></a>
static <a class="el" href="namespaceExiv2.html#a5153319711f35fe81cbc13f4b852450c">TypeId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a2adef06fdae2c0178603b5015e798120">typeId</a> (uint16_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a78c07cf9a7a3718259a8d9ed7530b3a4">tag</a>)</td></tr>
<tr class="memdesc:a2adef06fdae2c0178603b5015e798120"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the type id for a tag. <br /></td></tr>
<tr class="separator:a2adef06fdae2c0178603b5015e798120"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8a1296c8299343399ab9eff9d0e6583"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8a1296c8299343399ab9eff9d0e6583"></a>
static <a class="el" href="namespaceExiv2_1_1Internal.html#a8e444d08b1880dabd0190afdacdb42a9">DataLocId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#aa8a1296c8299343399ab9eff9d0e6583">dataLocation</a> (uint16_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a78c07cf9a7a3718259a8d9ed7530b3a4">tag</a>)</td></tr>
<tr class="memdesc:aa8a1296c8299343399ab9eff9d0e6583"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the data location id for a tag. <br /></td></tr>
<tr class="separator:aa8a1296c8299343399ab9eff9d0e6583"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Manipulators</h2></td></tr>
<tr class="memitem:ae56e6ee4b1da653b6d44ef9f0969e025"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae56e6ee4b1da653b6d44ef9f0969e025"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ae56e6ee4b1da653b6d44ef9f0969e025">add</a> (<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a057050ea74eefe38ee677a6db3136d83">AutoPtr</a> component)</td></tr>
<tr class="memdesc:ae56e6ee4b1da653b6d44ef9f0969e025"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a component to the composition. <br /></td></tr>
<tr class="separator:ae56e6ee4b1da653b6d44ef9f0969e025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af019bd49e7c4a38c644f4d9b0e99bff6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#af019bd49e7c4a38c644f4d9b0e99bff6">add</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#aa296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>
<tr class="memdesc:af019bd49e7c4a38c644f4d9b0e99bff6"><td class="mdescLeft">&#160;</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="#af019bd49e7c4a38c644f4d9b0e99bff6">More...</a><br /></td></tr>
<tr class="separator:af019bd49e7c4a38c644f4d9b0e99bff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a796cd02123f8f107f98c0e3bb5221208"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a796cd02123f8f107f98c0e3bb5221208">remove</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#aa296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>
<tr class="memdesc:a796cd02123f8f107f98c0e3bb5221208"><td class="mdescLeft">&#160;</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="#a796cd02123f8f107f98c0e3bb5221208">More...</a><br /></td></tr>
<tr class="separator:a796cd02123f8f107f98c0e3bb5221208"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a7574b05379d86c2cc71ec5aa18b7b6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a6a7574b05379d86c2cc71ec5aa18b7b6">read</a> (const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#aa863e648904d2a14a7efaad7e6458212">pData</a>, uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a38e99214c0866c9fd683b621ec3590f5">size</a>, uint32_t start, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder)</td></tr>
<tr class="memdesc:a6a7574b05379d86c2cc71ec5aa18b7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a component from a data buffer.  <a href="#a6a7574b05379d86c2cc71ec5aa18b7b6">More...</a><br /></td></tr>
<tr class="separator:a6a7574b05379d86c2cc71ec5aa18b7b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28f3354567a79aed51d111ef51fa5f58"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a28f3354567a79aed51d111ef51fa5f58">write</a> (<a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3dd5fb1770b0e6c8f9b08a51c958a55f">offset</a>)</td></tr>
<tr class="memdesc:a28f3354567a79aed51d111ef51fa5f58"><td class="mdescLeft">&#160;</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="#a28f3354567a79aed51d111ef51fa5f58">More...</a><br /></td></tr>
<tr class="separator:a28f3354567a79aed51d111ef51fa5f58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a185e1f0f6064990dd1a5c6b9164a0e0d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a185e1f0f6064990dd1a5c6b9164a0e0d">writeValueData</a> (<a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3dd5fb1770b0e6c8f9b08a51c958a55f">offset</a>)</td></tr>
<tr class="memdesc:a185e1f0f6064990dd1a5c6b9164a0e0d"><td class="mdescLeft">&#160;</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="#a185e1f0f6064990dd1a5c6b9164a0e0d">More...</a><br /></td></tr>
<tr class="separator:a185e1f0f6064990dd1a5c6b9164a0e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ef2788e0125bd87717e1c04d27209e7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ef2788e0125bd87717e1c04d27209e7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a7ef2788e0125bd87717e1c04d27209e7">setDir</a> (uint16_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ac60ae649ccb6bd44f04979c4f6e33252">dir</a>)</td></tr>
<tr class="memdesc:a7ef2788e0125bd87717e1c04d27209e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the directory tag for this component. <br /></td></tr>
<tr class="separator:a7ef2788e0125bd87717e1c04d27209e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1847aa0d7f71378eae491af41a337d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1847aa0d7f71378eae491af41a337d2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#aa1847aa0d7f71378eae491af41a337d2">setValue</a> (<a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a> buf)</td></tr>
<tr class="memdesc:aa1847aa0d7f71378eae491af41a337d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the data value of the entry. <br /></td></tr>
<tr class="separator:aa1847aa0d7f71378eae491af41a337d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acce7704691a48c5c1f1e8af4b98e5532"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acce7704691a48c5c1f1e8af4b98e5532"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#acce7704691a48c5c1f1e8af4b98e5532">doAdd</a> (<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a057050ea74eefe38ee677a6db3136d83">AutoPtr</a> component)=0</td></tr>
<tr class="memdesc:acce7704691a48c5c1f1e8af4b98e5532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ae56e6ee4b1da653b6d44ef9f0969e025" title="Add a component to the composition. ">add()</a> <br /></td></tr>
<tr class="separator:acce7704691a48c5c1f1e8af4b98e5532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c72fc7369b5772b2c0ae977c84ed37d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c72fc7369b5772b2c0ae977c84ed37d"></a>
virtual <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a8c72fc7369b5772b2c0ae977c84ed37d">doAdd</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#aa296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>
<tr class="memdesc:a8c72fc7369b5772b2c0ae977c84ed37d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ae56e6ee4b1da653b6d44ef9f0969e025" title="Add a component to the composition. ">add()</a>. The default implementation does nothing. <br /></td></tr>
<tr class="separator:a8c72fc7369b5772b2c0ae977c84ed37d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4878acf471cbc8680a4111439790c2ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4878acf471cbc8680a4111439790c2ef"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a4878acf471cbc8680a4111439790c2ef">doRemove</a> (<a class="el" href="namespaceExiv2_1_1Internal.html#aa296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;crwDirs, uint16_t crwTagId)</td></tr>
<tr class="memdesc:a4878acf471cbc8680a4111439790c2ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a796cd02123f8f107f98c0e3bb5221208" title="Remove crwTagId from the parse tree, if it exists yet. crwDirs contains the path of subdirectories...">remove()</a>. The default implementation does nothing. <br /></td></tr>
<tr class="separator:a4878acf471cbc8680a4111439790c2ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab814e06f56d1db89f0828e319a921c50"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab814e06f56d1db89f0828e319a921c50"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ab814e06f56d1db89f0828e319a921c50">doRead</a> (const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#aa863e648904d2a14a7efaad7e6458212">pData</a>, uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a38e99214c0866c9fd683b621ec3590f5">size</a>, uint32_t start, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder)</td></tr>
<tr class="memdesc:ab814e06f56d1db89f0828e319a921c50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a6a7574b05379d86c2cc71ec5aa18b7b6" title="Read a component from a data buffer. ">read()</a>. The default implementation reads a directory entry. <br /></td></tr>
<tr class="separator:ab814e06f56d1db89f0828e319a921c50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46c9e097d4974da18d891ceab43b5bf3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a46c9e097d4974da18d891ceab43b5bf3"></a>
virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a46c9e097d4974da18d891ceab43b5bf3">doWrite</a> (<a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3dd5fb1770b0e6c8f9b08a51c958a55f">offset</a>)=0</td></tr>
<tr class="memdesc:a46c9e097d4974da18d891ceab43b5bf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a28f3354567a79aed51d111ef51fa5f58" title="Write the metadata from the raw metadata component to the binary image blob. This method may append t...">write()</a> <br /></td></tr>
<tr class="separator:a46c9e097d4974da18d891ceab43b5bf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bf3b862b5d5d5a96cb035177aabae0d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3bf3b862b5d5d5a96cb035177aabae0d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3bf3b862b5d5d5a96cb035177aabae0d">setSize</a> (uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a38e99214c0866c9fd683b621ec3590f5">size</a>)</td></tr>
<tr class="memdesc:a3bf3b862b5d5d5a96cb035177aabae0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the size of the data area. <br /></td></tr>
<tr class="separator:a3bf3b862b5d5d5a96cb035177aabae0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7203038d5cd748c8bbd319443291b972"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7203038d5cd748c8bbd319443291b972"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a7203038d5cd748c8bbd319443291b972">setOffset</a> (uint32_t <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3dd5fb1770b0e6c8f9b08a51c958a55f">offset</a>)</td></tr>
<tr class="memdesc:a7203038d5cd748c8bbd319443291b972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the offset for this component. <br /></td></tr>
<tr class="separator:a7203038d5cd748c8bbd319443291b972"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Accessors</h2></td></tr>
<tr class="memitem:a309a5447a6a6361e90cc69b6fba867ba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a309a5447a6a6361e90cc69b6fba867ba">decode</a> (<a class="el" href="classExiv2_1_1Image.html">Image</a> &amp;image, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const </td></tr>
<tr class="memdesc:a309a5447a6a6361e90cc69b6fba867ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode metadata from the component and add it to <em>image</em>.  <a href="#a309a5447a6a6361e90cc69b6fba867ba">More...</a><br /></td></tr>
<tr class="separator:a309a5447a6a6361e90cc69b6fba867ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd6b00278cead8f8fc514c71804bcb2f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#acd6b00278cead8f8fc514c71804bcb2f">print</a> (std::ostream &amp;os, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, const std::string &amp;prefix=&quot;&quot;) const </td></tr>
<tr class="memdesc:acd6b00278cead8f8fc514c71804bcb2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print debug info about a component to <em>os</em>.  <a href="#acd6b00278cead8f8fc514c71804bcb2f">More...</a><br /></td></tr>
<tr class="separator:acd6b00278cead8f8fc514c71804bcb2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fad54e734aff6aab957dae16a8afa03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fad54e734aff6aab957dae16a8afa03"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a9fad54e734aff6aab957dae16a8afa03">writeDirEntry</a> (<a class="el" href="namespaceExiv2.html#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;blob, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const </td></tr>
<tr class="memdesc:a9fad54e734aff6aab957dae16a8afa03"><td class="mdescLeft">&#160;</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 class="separator:a9fad54e734aff6aab957dae16a8afa03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac60ae649ccb6bd44f04979c4f6e33252"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac60ae649ccb6bd44f04979c4f6e33252"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ac60ae649ccb6bd44f04979c4f6e33252">dir</a> () const </td></tr>
<tr class="memdesc:ac60ae649ccb6bd44f04979c4f6e33252"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the tag of the directory containing this component. <br /></td></tr>
<tr class="separator:ac60ae649ccb6bd44f04979c4f6e33252"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78c07cf9a7a3718259a8d9ed7530b3a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78c07cf9a7a3718259a8d9ed7530b3a4"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a78c07cf9a7a3718259a8d9ed7530b3a4">tag</a> () const </td></tr>
<tr class="memdesc:a78c07cf9a7a3718259a8d9ed7530b3a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the tag of this component. <br /></td></tr>
<tr class="separator:a78c07cf9a7a3718259a8d9ed7530b3a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af823b6f819f1d6b55d88fcd691c8a37d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af823b6f819f1d6b55d88fcd691c8a37d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#af823b6f819f1d6b55d88fcd691c8a37d">empty</a> () const </td></tr>
<tr class="memdesc:af823b6f819f1d6b55d88fcd691c8a37d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if the component is empty, else false. <br /></td></tr>
<tr class="separator:af823b6f819f1d6b55d88fcd691c8a37d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38e99214c0866c9fd683b621ec3590f5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a38e99214c0866c9fd683b621ec3590f5">size</a> () const </td></tr>
<tr class="memdesc:a38e99214c0866c9fd683b621ec3590f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the data size of this component.  <a href="#a38e99214c0866c9fd683b621ec3590f5">More...</a><br /></td></tr>
<tr class="separator:a38e99214c0866c9fd683b621ec3590f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dd5fb1770b0e6c8f9b08a51c958a55f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3dd5fb1770b0e6c8f9b08a51c958a55f"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3dd5fb1770b0e6c8f9b08a51c958a55f">offset</a> () const </td></tr>
<tr class="memdesc:a3dd5fb1770b0e6c8f9b08a51c958a55f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the offset to the data from the start of the directory. <br /></td></tr>
<tr class="separator:a3dd5fb1770b0e6c8f9b08a51c958a55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa863e648904d2a14a7efaad7e6458212"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa863e648904d2a14a7efaad7e6458212"></a>
const <a class="el" href="namespaceExiv2.html#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#aa863e648904d2a14a7efaad7e6458212">pData</a> () const </td></tr>
<tr class="memdesc:aa863e648904d2a14a7efaad7e6458212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the data area of this component. <br /></td></tr>
<tr class="separator:aa863e648904d2a14a7efaad7e6458212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad370128bddf89b0c4ec43783f3e7bdae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad370128bddf89b0c4ec43783f3e7bdae"></a>
uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ad370128bddf89b0c4ec43783f3e7bdae">tagId</a> () const </td></tr>
<tr class="memdesc:ad370128bddf89b0c4ec43783f3e7bdae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the tag id of this component. <br /></td></tr>
<tr class="separator:ad370128bddf89b0c4ec43783f3e7bdae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0742c8b3d210200b965a277070d1b64"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0742c8b3d210200b965a277070d1b64"></a>
<a class="el" href="namespaceExiv2.html#a5153319711f35fe81cbc13f4b852450c">TypeId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ac0742c8b3d210200b965a277070d1b64">typeId</a> () const </td></tr>
<tr class="memdesc:ac0742c8b3d210200b965a277070d1b64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the type id of thi component. <br /></td></tr>
<tr class="separator:ac0742c8b3d210200b965a277070d1b64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0f4e20439ea306bb5decd2bfd44004e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae0f4e20439ea306bb5decd2bfd44004e"></a>
<a class="el" href="namespaceExiv2_1_1Internal.html#a8e444d08b1880dabd0190afdacdb42a9">DataLocId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ae0f4e20439ea306bb5decd2bfd44004e">dataLocation</a> () const </td></tr>
<tr class="memdesc:ae0f4e20439ea306bb5decd2bfd44004e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the data location for this component. <br /></td></tr>
<tr class="separator:ae0f4e20439ea306bb5decd2bfd44004e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a106b9412754841caaf95f4220dc45771"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a106b9412754841caaf95f4220dc45771"></a>
<a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a106b9412754841caaf95f4220dc45771">findComponent</a> (uint16_t crwTagId, uint16_t crwDir) const </td></tr>
<tr class="memdesc:a106b9412754841caaf95f4220dc45771"><td class="mdescLeft">&#160;</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 class="separator:a106b9412754841caaf95f4220dc45771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78f1afe3715944c885e80e666ccbede0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a78f1afe3715944c885e80e666ccbede0"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a78f1afe3715944c885e80e666ccbede0">doDecode</a> (<a class="el" href="classExiv2_1_1Image.html">Image</a> &amp;image, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const =0</td></tr>
<tr class="memdesc:a78f1afe3715944c885e80e666ccbede0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a309a5447a6a6361e90cc69b6fba867ba" title="Decode metadata from the component and add it to image. ">decode()</a> <br /></td></tr>
<tr class="separator:a78f1afe3715944c885e80e666ccbede0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af17cf974ed679b7c0b9881d37a522600"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af17cf974ed679b7c0b9881d37a522600"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#af17cf974ed679b7c0b9881d37a522600">doPrint</a> (std::ostream &amp;os, <a class="el" href="namespaceExiv2.html#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder, const std::string &amp;prefix) const </td></tr>
<tr class="memdesc:af17cf974ed679b7c0b9881d37a522600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#acd6b00278cead8f8fc514c71804bcb2f" title="Print debug info about a component to os. ">print()</a>. The default implementation prints the entry. <br /></td></tr>
<tr class="separator:af17cf974ed679b7c0b9881d37a522600"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eda8546882afa34b99d2f2cbd92eb0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4eda8546882afa34b99d2f2cbd92eb0a"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a4eda8546882afa34b99d2f2cbd92eb0a">doEmpty</a> () const </td></tr>
<tr class="memdesc:a4eda8546882afa34b99d2f2cbd92eb0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#af823b6f819f1d6b55d88fcd691c8a37d" title="Return true if the component is empty, else false. ">empty()</a>. Default implementation returns true if size is 0. <br /></td></tr>
<tr class="separator:a4eda8546882afa34b99d2f2cbd92eb0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacba737d1c00b34512982422383b297c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacba737d1c00b34512982422383b297c"></a>
virtual <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html">CiffComponent</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#aacba737d1c00b34512982422383b297c">doFindComponent</a> (uint16_t crwTagId, uint16_t crwDir) const </td></tr>
<tr class="memdesc:aacba737d1c00b34512982422383b297c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a106b9412754841caaf95f4220dc45771" title="Finds crwTagId in directory crwDir, returning a pointer to the component or 0 if not found...">findComponent()</a>. The default implementation checks the entry. <br /></td></tr>
<tr class="separator:aacba737d1c00b34512982422383b297c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>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). </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="af019bd49e7c4a38c644f4d9b0e99bff6"></a>
<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#aa296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;&#160;</td>
          <td class="paramname"><em>crwDirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>crwTagId</em>&#160;</td>
        </tr>
        <tr>
          <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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crwDirs</td><td>Subdirectory path from root to the subdirectory containing the tag to be added. </td></tr>
    <tr><td class="paramname">crwTagId</td><td><a class="el" href="namespaceExiv2_1_1Internal_1_1Tag.html">Tag</a> to be added.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the newly added component. </dd></dl>

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

</div>
</div>
<a class="anchor" id="a309a5447a6a6361e90cc69b6fba867ba"></a>
<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;&#160;</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#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>byteOrder</em>&#160;</td>
        </tr>
        <tr>
          <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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">image</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 to the Exiv2...">Image</a> to add metadata to </td></tr>
    <tr><td class="paramname">byteOrder</td><td>Byte order </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="acd6b00278cead8f8fc514c71804bcb2f"></a>
<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;&#160;</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#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>byteOrder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>prefix</em> = <code>&quot;&quot;</code>&#160;</td>
        </tr>
        <tr>
          <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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>Output stream to write to </td></tr>
    <tr><td class="paramname">byteOrder</td><td>Byte order </td></tr>
    <tr><td class="paramname">prefix</td><td>Prefix to be written before each line of output </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="a6a7574b05379d86c2cc71ec5aa18b7b6"></a>
<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#a16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</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#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>byteOrder</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read a component from a data buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pData</td><td>Pointer to the data buffer. </td></tr>
    <tr><td class="paramname">size</td><td>Number of bytes in the data buffer. </td></tr>
    <tr><td class="paramname">start</td><td>Component starts at <em>pData</em> + <em>start</em>. </td></tr>
    <tr><td class="paramname">byteOrder</td><td>Applicable byte order (little or big endian).</td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">Error</td><td>If the component cannot be parsed. </td></tr>
  </table>
  </dd>
</dl>

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

</div>
</div>
<a class="anchor" id="a796cd02123f8f107f98c0e3bb5221208"></a>
<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#aa296ba0574089411f0b5f2ab9c8fab27">CrwDirs</a> &amp;&#160;</td>
          <td class="paramname"><em>crwDirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>crwTagId</em>&#160;</td>
        </tr>
        <tr>
          <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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">crwDirs</td><td>Subdirectory path from root to the subdirectory containing the tag to be removed. </td></tr>
    <tr><td class="paramname">crwTagId</td><td><a class="el" href="namespaceExiv2_1_1Internal_1_1Tag.html">Tag</a> to be removed. </td></tr>
  </table>
  </dd>
</dl>

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

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

</div>
</div>
<a class="anchor" id="a38e99214c0866c9fd683b621ec3590f5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t Exiv2::Internal::CiffComponent::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return the data size of this component. </p>
<dl class="section note"><dt>Note</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="classExiv2_1_1CrwParser.html#a80a0861a3c37e739ef144d425f439079">Exiv2::CrwParser::decode()</a>, and <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3bf3b862b5d5d5a96cb035177aabae0d">setSize()</a>.</p>

</div>
</div>
<a class="anchor" id="a28f3354567a79aed51d111ef51fa5f58"></a>
<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#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;&#160;</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#a94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a>&#160;</td>
          <td class="paramname"><em>byteOrder</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blob</td><td>Binary image to add metadata to </td></tr>
    <tr><td class="paramname">byteOrder</td><td>Byte order </td></tr>
    <tr><td class="paramname">offset</td><td>Current offset</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New offset </dd></dl>

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

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

</div>
</div>
<a class="anchor" id="a185e1f0f6064990dd1a5c6b9164a0e0d"></a>
<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#a6e7b9a2ef47caec919b15f1ae6ff4872">Blob</a> &amp;&#160;</td>
          <td class="paramname"><em>blob</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <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 class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blob</td><td>The binary image to write to. </td></tr>
    <tr><td class="paramname">offset</td><td>Offset from the start of the directory for this entry.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>New offset. </dd></dl>

<p>References <a class="el" href="namespaceExiv2.html#a717a4bb844932a834dd109ce2554a2a4">Exiv2::append()</a>, <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ae0f4e20439ea306bb5decd2bfd44004e">dataLocation()</a>, <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#a3dd5fb1770b0e6c8f9b08a51c958a55f">offset()</a>, and <a class="el" href="classExiv2_1_1Internal_1_1CiffComponent.html#ad370128bddf89b0c4ec43783f3e7bdae">tagId()</a>.</p>

</div>
</div>
<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>
<li>crwimage.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 4 2016 17:51:51 for Exiv2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>