Sophie

Sophie

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

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::Metadatum 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="classExiv2_1_1Metadatum.html">Metadatum</a>
  </div>
</div>
<div class="contents">
<h1>Exiv2::Metadatum Class Reference</h1><!-- doxytag: class="Exiv2::Metadatum" -->Abstract base class defining the interface to access information related to one metadata tag.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;metadatum.hpp&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Exiv2::Metadatum:</div>
<div class="dynsection">
<p><center><img src="classExiv2_1_1Metadatum__inherit__graph.png" border="0" usemap="#Exiv2_1_1Metadatum__inherit__map" alt="Inheritance graph"></center>
<map name="Exiv2_1_1Metadatum__inherit__map">
<area shape="rect" id="node3" href="classExiv2_1_1Exifdatum.html" title="An Exif metadatum, consisting of an ExifKey and a Value and methods to manipulate..." alt="" coords="5,80,187,107"><area shape="rect" id="node5" href="classExiv2_1_1Iptcdatum.html" title="An IPTC metadatum (&quot;dataset&quot;), consisting of an IptcKey and a Value and..." alt="" coords="211,80,392,107"><area shape="rect" id="node7" href="classExiv2_1_1Xmpdatum.html" title="Information related to an XMP property. An XMP metadatum consists of an XmpKey and..." alt="" coords="416,80,587,107"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classExiv2_1_1Metadatum-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Creators</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1d7ef6f699dc1448ddf37c5e8938808a"></a><!-- doxytag: member="Exiv2::Metadatum::Metadatum" ref="1d7ef6f699dc1448ddf37c5e8938808a" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#1d7ef6f699dc1448ddf37c5e8938808a">Metadatum</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="a4b96033393a69d1382570f638d7243b"></a><!-- doxytag: member="Exiv2::Metadatum::Metadatum" ref="a4b96033393a69d1382570f638d7243b" args="(const Metadatum &amp;rhs)" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#a4b96033393a69d1382570f638d7243b">Metadatum</a> (const <a class="el" href="classExiv2_1_1Metadatum.html">Metadatum</a> &amp;rhs)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d968ef659aaeb20b5ee5dd585098c45e"></a><!-- doxytag: member="Exiv2::Metadatum::~Metadatum" ref="d968ef659aaeb20b5ee5dd585098c45e" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#d968ef659aaeb20b5ee5dd585098c45e">~Metadatum</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">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="f4dd21ad1c59ae0bbe521651951615f3"></a><!-- doxytag: member="Exiv2::Metadatum::setValue" ref="f4dd21ad1c59ae0bbe521651951615f3" args="(const Value *pValue)=0" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#f4dd21ad1c59ae0bbe521651951615f3">setValue</a> (const <a class="el" href="classExiv2_1_1Value.html">Value</a> *pValue)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value. This method copies (clones) the value pointed to by pValue. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="246b60cc8cca54ce6a6e97eeb4ef84bc"></a><!-- doxytag: member="Exiv2::Metadatum::setValue" ref="246b60cc8cca54ce6a6e97eeb4ef84bc" args="(const std::string &amp;buf)=0" -->
virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#246b60cc8cca54ce6a6e97eeb4ef84bc">setValue</a> (const std::string &amp;buf)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value to the string buf. Uses <a class="el" href="classExiv2_1_1Value.html#2864378d7572310aa5f4cf4127365862" title="Set the value from a string buffer. The format of the string corresponds to that...">Value::read(const std::string&amp; buf)</a>. If the metadatum does not have a value yet, then one is created. See subclasses for more details. Return 0 if the value was read successfully. <br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Accessors</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#554fbe4c9641f72939fdfc3802220090">print</a> (const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> *pMetadata=0) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the interpreted value to a string.  <a href="#554fbe4c9641f72939fdfc3802220090"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#24bda0168b0655ccbbc8b870b583f1da">copy</a> (<a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *buf, <a class="el" href="namespaceExiv2.html#94c225faf6d6c611a3828fae1c28efa6">ByteOrder</a> byteOrder) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write value to a data buffer and return the number of bytes written.  <a href="#24bda0168b0655ccbbc8b870b583f1da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#63c2b87249ba96679c29e01218169124">write</a> (std::ostream &amp;os, const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> *pMetadata=0) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write the interpreted value to an output stream, return the stream.  <a href="#63c2b87249ba96679c29e01218169124"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f9d30791ac19ecd4a80cd9214f3d1495"></a><!-- doxytag: member="Exiv2::Metadatum::key" ref="f9d30791ac19ecd4a80cd9214f3d1495" args="() const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#f9d30791ac19ecd4a80cd9214f3d1495">key</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the key of the metadatum. The key is of the form 'familyName.groupName.tagName'. Note however that the key is not necessarily unique, e.g., an <a class="el" href="classExiv2_1_1ExifData.html" title="A container for Exif data. This is a top-level class of the Exiv2 library. The container...">ExifData</a> object may contain multiple metadata with the same key. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8383c39e2ee4e67afdb9f7180bd728e7"></a><!-- doxytag: member="Exiv2::Metadatum::familyName" ref="8383c39e2ee4e67afdb9f7180bd728e7" args="() const =0" -->
virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#8383c39e2ee4e67afdb9f7180bd728e7">familyName</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of the metadata family (which is also the first part of the key). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="880644b1b92788c59b4457ca9d692c55"></a><!-- doxytag: member="Exiv2::Metadatum::groupName" ref="880644b1b92788c59b4457ca9d692c55" args="() const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#880644b1b92788c59b4457ca9d692c55">groupName</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of the metadata group (which is also the second part of the key). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="828306096c0575ffc5d02c73c3b6ff53"></a><!-- doxytag: member="Exiv2::Metadatum::tagName" ref="828306096c0575ffc5d02c73c3b6ff53" args="() const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#828306096c0575ffc5d02c73c3b6ff53">tagName</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of the tag (which is also the third part of the key). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="58cd8a22d1debd0e3f8cd2407587ed31"></a><!-- doxytag: member="Exiv2::Metadatum::tagLabel" ref="58cd8a22d1debd0e3f8cd2407587ed31" args="() const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#58cd8a22d1debd0e3f8cd2407587ed31">tagLabel</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a label for the tag. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="39ee5937edab29d199f3d318bb55eace"></a><!-- doxytag: member="Exiv2::Metadatum::tag" ref="39ee5937edab29d199f3d318bb55eace" args="() const =0" -->
virtual uint16_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#39ee5937edab29d199f3d318bb55eace">tag</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the tag. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0f4c5f021786e0e7abc3ae25b984f4e8"></a><!-- doxytag: member="Exiv2::Metadatum::typeId" ref="0f4c5f021786e0e7abc3ae25b984f4e8" args="() const =0" -->
virtual <a class="el" href="namespaceExiv2.html#5153319711f35fe81cbc13f4b852450c">TypeId</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#0f4c5f021786e0e7abc3ae25b984f4e8">typeId</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the type id of the value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c3fc08927500d7fe227bc34583815dfe"></a><!-- doxytag: member="Exiv2::Metadatum::typeName" ref="c3fc08927500d7fe227bc34583815dfe" args="() const =0" -->
virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#c3fc08927500d7fe227bc34583815dfe">typeName</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of the type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1a77c33ee0ba24127dff478e26ba8fa7"></a><!-- doxytag: member="Exiv2::Metadatum::typeSize" ref="1a77c33ee0ba24127dff478e26ba8fa7" args="() const =0" -->
virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#1a77c33ee0ba24127dff478e26ba8fa7">typeSize</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size in bytes of one component of this type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="75740ff36685a69d617e0b9548fcf2b4"></a><!-- doxytag: member="Exiv2::Metadatum::count" ref="75740ff36685a69d617e0b9548fcf2b4" args="() const =0" -->
virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#75740ff36685a69d617e0b9548fcf2b4">count</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of components in the value. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="05e186d6189b44ac428b7d21a8dbc762"></a><!-- doxytag: member="Exiv2::Metadatum::size" ref="05e186d6189b44ac428b7d21a8dbc762" args="() const =0" -->
virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#05e186d6189b44ac428b7d21a8dbc762">size</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the size of the value in bytes. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8617d2efd0c1a241e96e853b7f00f077"></a><!-- doxytag: member="Exiv2::Metadatum::toString" ref="8617d2efd0c1a241e96e853b7f00f077" args="() const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#8617d2efd0c1a241e96e853b7f00f077">toString</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the value as a string. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="25cbb22ddf9597cfd4002dafb8713cfd"></a><!-- doxytag: member="Exiv2::Metadatum::toString" ref="25cbb22ddf9597cfd4002dafb8713cfd" args="(long n) const =0" -->
virtual std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#25cbb22ddf9597cfd4002dafb8713cfd">toString</a> (long n) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <em>n</em>-th component of the value converted to a string. The behaviour of the method is undefined if there is no <em>n</em>-th component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="66148c73f1b565885b4ee51358ae4308"></a><!-- doxytag: member="Exiv2::Metadatum::toLong" ref="66148c73f1b565885b4ee51358ae4308" args="(long n=0) const =0" -->
virtual long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#66148c73f1b565885b4ee51358ae4308">toLong</a> (long n=0) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <em>n</em>-th component of the value converted to long. The return value is -1 if the value is not set and the behaviour of the method is undefined if there is no <em>n</em>-th component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a70af228d888327badd2333020256ac2"></a><!-- doxytag: member="Exiv2::Metadatum::toFloat" ref="a70af228d888327badd2333020256ac2" args="(long n=0) const =0" -->
virtual float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#a70af228d888327badd2333020256ac2">toFloat</a> (long n=0) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <em>n</em>-th component of the value converted to float. The return value is -1 if the value is not set and the behaviour of the method is undefined if there is no <em>n</em>-th component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ea1935014f316b7a2eabc12be92ca7c9"></a><!-- doxytag: member="Exiv2::Metadatum::toRational" ref="ea1935014f316b7a2eabc12be92ca7c9" args="(long n=0) const =0" -->
virtual <a class="el" href="namespaceExiv2.html#95756f3f7fa19103f83addf5fa088a30">Rational</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#ea1935014f316b7a2eabc12be92ca7c9">toRational</a> (long n=0) const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <em>n</em>-th component of the value converted to Rational. The return value is -1/1 if the value is not set and the behaviour of the method is undefined if there is no <em>n</em>-th component. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classExiv2_1_1Value.html#0f62e585b82c97738858b743e60dff21">Value::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#1f3f53ab9df8c213ade42012a7e89ab3">getValue</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an auto-pointer to a copy (clone) of the value. The caller owns this copy and the auto-poiner ensures that it will be deleted.  <a href="#1f3f53ab9df8c213ade42012a7e89ab3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classExiv2_1_1Value.html">Value</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#67ab8d2752f951b70a8188341df9c7e6">value</a> () const =0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a constant reference to the value.  <a href="#67ab8d2752f951b70a8188341df9c7e6"></a><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="46d5e69333e5ab0045477bcf1c61a73e"></a><!-- doxytag: member="Exiv2::Metadatum::operator=" ref="46d5e69333e5ab0045477bcf1c61a73e" args="(const Metadatum &amp;rhs)" -->
<a class="el" href="classExiv2_1_1Metadatum.html">Metadatum</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1Metadatum.html#46d5e69333e5ab0045477bcf1c61a73e">operator=</a> (const <a class="el" href="classExiv2_1_1Metadatum.html">Metadatum</a> &amp;rhs)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. Protected so that it can only be used by subclasses but not directly. <br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Abstract base class defining the interface to access information related to one metadata tag. <hr><h2>Member Function Documentation</h2>
<a class="anchor" name="24bda0168b0655ccbbc8b870b583f1da"></a><!-- doxytag: member="Exiv2::Metadatum::copy" ref="24bda0168b0655ccbbc8b870b583f1da" args="(byte *buf, ByteOrder byteOrder) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual long Exiv2::Metadatum::copy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> *&nbsp;</td>
          <td class="paramname"> <em>buf</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<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write value to a data buffer and return the number of bytes written. 
<p>
The user must ensure that the buffer has enough memory. Otherwise the call results in undefined behaviour.<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>buf</em>&nbsp;</td><td>Data buffer to write to. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>byteOrder</em>&nbsp;</td><td>Applicable byte order (little or big endian). </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of characters written. </dd></dl>

<p>Implemented in <a class="el" href="classExiv2_1_1Exifdatum.html#28391f10f14d66cabeb8042853e311cd">Exiv2::Exifdatum</a>, <a class="el" href="classExiv2_1_1Iptcdatum.html#fef33191871750f8b1c760d46f553c51">Exiv2::Iptcdatum</a>, and <a class="el" href="classExiv2_1_1Xmpdatum.html#2ba6162b1c5baac944b208f1401c9690">Exiv2::Xmpdatum</a>.</p>

<p>Referenced by <a class="el" href="actions_8cpp_source.html#l00535">Action::Print::printMetadatum()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1f3f53ab9df8c213ade42012a7e89ab3"></a><!-- doxytag: member="Exiv2::Metadatum::getValue" ref="1f3f53ab9df8c213ade42012a7e89ab3" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classExiv2_1_1Value.html#0f62e585b82c97738858b743e60dff21">Value::AutoPtr</a> Exiv2::Metadatum::getValue           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return an auto-pointer to a copy (clone) of the value. The caller owns this copy and the auto-poiner ensures that it will be deleted. 
<p>
This method is provided for users who need full control over the value. A caller may, e.g., downcast the pointer to the appropriate subclass of <a class="el" href="classExiv2_1_1Value.html" title="Common interface for all types of values used with metadata.">Value</a> to make use of the interface of the subclass to set or modify its contents.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An auto-pointer containing a pointer to a copy (clone) of the value, 0 if the value is not set. </dd></dl>

<p>Implemented in <a class="el" href="classExiv2_1_1Exifdatum.html#69fee053db7f4e55295f7ff1c4d34566">Exiv2::Exifdatum</a>, <a class="el" href="classExiv2_1_1Iptcdatum.html#dde9e41e4fda8d1cd9e5947e44cbf40a">Exiv2::Iptcdatum</a>, and <a class="el" href="classExiv2_1_1Xmpdatum.html#d18588a7058cabea035cad3568293ecb">Exiv2::Xmpdatum</a>.</p>

</div>
</div><p>
<a class="anchor" name="554fbe4c9641f72939fdfc3802220090"></a><!-- doxytag: member="Exiv2::Metadatum::print" ref="554fbe4c9641f72939fdfc3802220090" args="(const ExifData *pMetadata=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string Exiv2::Metadatum::print           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> *&nbsp;</td>
          <td class="paramname"> <em>pMetadata</em> = <code>0</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write the interpreted value to a string. 
<p>
Implemented in terms of <a class="el" href="classExiv2_1_1Metadatum.html#63c2b87249ba96679c29e01218169124" title="Write the interpreted value to an output stream, return the stream.">write()</a>, see there. 
<p>Referenced by <a class="el" href="actions_8cpp_source.html#l00535">Action::Print::printMetadatum()</a>.</p>

</div>
</div><p>
<a class="anchor" name="67ab8d2752f951b70a8188341df9c7e6"></a><!-- doxytag: member="Exiv2::Metadatum::value" ref="67ab8d2752f951b70a8188341df9c7e6" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="classExiv2_1_1Value.html">Value</a>&amp; Exiv2::Metadatum::value           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a constant reference to the value. 
<p>
This method is provided mostly for convenient and versatile output of the value which can (to some extent) be formatted through standard stream manipulators. Do not attempt to write to the value through this reference.<p>
<b>Example:</b> <br>
 <div class="fragment"><pre class="fragment">          <a class="code" href="classExiv2_1_1ExifData.html#2b8ac7a474d6527c0f3f6a0a9cebef77" title="ExifMetadata const iterator type.">ExifData::const_iterator</a> i = exifData.findKey(<a class="code" href="classExiv2_1_1Metadatum.html#f9d30791ac19ecd4a80cd9214f3d1495" title="Return the key of the metadatum. The key is of the form &amp;#39;familyName.groupName...">key</a>);
          <span class="keywordflow">if</span> (i != exifData.end()) {
              std::cout &lt;&lt; i-&gt;key() &lt;&lt; <span class="stringliteral">" "</span> &lt;&lt; std::hex &lt;&lt; i-&gt;value() &lt;&lt; <span class="stringliteral">"\n"</span>;
          }
</pre></div><p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A constant reference to the value. </dd></dl>
<dl compact><dt><b>Exceptions:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html" title="Simple error class used for exceptions. An output operator is provided to print errors...">Error</a></em>&nbsp;</td><td>if the value is not set. </td></tr>
  </table>
</dl>

<p>Implemented in <a class="el" href="classExiv2_1_1Exifdatum.html#44d8261179011b2f68075d805e565866">Exiv2::Exifdatum</a>, <a class="el" href="classExiv2_1_1Iptcdatum.html#799184a3a000bda2432a0b7366c2dfb2">Exiv2::Iptcdatum</a>, and <a class="el" href="classExiv2_1_1Xmpdatum.html#7eadf7ef0bd9be2436c4376196815dcc">Exiv2::Xmpdatum</a>.</p>

<p>Referenced by <a class="el" href="actions_8cpp_source.html#l00535">Action::Print::printMetadatum()</a>.</p>

</div>
</div><p>
<a class="anchor" name="63c2b87249ba96679c29e01218169124"></a><!-- doxytag: member="Exiv2::Metadatum::write" ref="63c2b87249ba96679c29e01218169124" args="(std::ostream &amp;os, const ExifData *pMetadata=0) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual std::ostream&amp; Exiv2::Metadatum::write           </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">const <a class="el" href="classExiv2_1_1ExifData.html">ExifData</a> *&nbsp;</td>
          <td class="paramname"> <em>pMetadata</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Write the interpreted value to an output stream, return the stream. 
<p>
The method takes an optional pointer to a metadata container. Pretty-print functions may use that to refer to other metadata as it is sometimes not sufficient to know only the value of the metadatum that should be interpreted. Thus, it is advisable to always call this method with a pointer to the metadata container if possible.<p>
This functionality is currently only implemented for Exif tags. The pointer is ignored when used to write IPTC datasets or XMP properties.<p>
Without the optional metadata pointer, you do not usually have to use this function; it is used for the implementation of the output operator for Metadatum, <a class="el" href="namespaceExiv2.html#8525be11fc92fcb2bd88e886daa1959a" title="Output operator for Metadatum types, writing the interpreted tag value.">operator&lt;&lt;(std::ostream &amp;os, const Metadatum &amp;md)</a>.<p>
See also <a class="el" href="classExiv2_1_1Metadatum.html#554fbe4c9641f72939fdfc3802220090" title="Write the interpreted value to a string.">print()</a>, which prints the interpreted value to a string. 
<p>Implemented in <a class="el" href="classExiv2_1_1Exifdatum.html#2ba934f8a9fb3a93ae71e605bc85c921">Exiv2::Exifdatum</a>, <a class="el" href="classExiv2_1_1Iptcdatum.html#200b7d5d6f0e49e3c29d631f561c879f">Exiv2::Iptcdatum</a>, and <a class="el" href="classExiv2_1_1Xmpdatum.html#5ba9818ed2cb6ac4726eed20d8b590a0">Exiv2::Xmpdatum</a>.</p>

<p>Referenced by <a class="el" href="metadatum_8hpp_source.html#l00326">Exiv2::operator&lt;&lt;()</a>.</p>

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