<!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.11"/> <title>glibmm: Glib::Checksum 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="doxygen.css" rel="stylesheet" type="text/css" /> <link href="doxygen-extra.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 id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">glibmm  <span id="projectnumber">2.60.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</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="examples.html"><span>Examples</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceGlib.html">Glib</a></li><li class="navelem"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#related">Related Functions</a> | <a href="classGlib_1_1Checksum-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">Glib::Checksum Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>Computes the checksum for data. <a href="classGlib_1_1Checksum.html#details">More...</a></p> <p><code>#include <glibmm/checksum.h></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></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 class="memitem:a218ef89e5467d6cb8b2687813b286ced"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a218ef89e5467d6cb8b2687813b286ced">Checksum</a> ()</td></tr> <tr class="memdesc:a218ef89e5467d6cb8b2687813b286ced"><td class="mdescLeft"> </td><td class="mdescRight">Constructs an invalid object. <a href="#a218ef89e5467d6cb8b2687813b286ced">More...</a><br /></td></tr> <tr class="separator:a218ef89e5467d6cb8b2687813b286ced"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1c27c48e7c6ad69617b8480b8aca4531"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a1c27c48e7c6ad69617b8480b8aca4531">Checksum</a> (GChecksum* castitem, bool make_a_copy=false)</td></tr> <tr class="separator:a1c27c48e7c6ad69617b8480b8aca4531"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4839f2e9e33ac5bdb1cf696d8ecf4a10"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a4839f2e9e33ac5bdb1cf696d8ecf4a10">Checksum</a> (const <a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& src)</td></tr> <tr class="separator:a4839f2e9e33ac5bdb1cf696d8ecf4a10"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a830ae51f3f4cb4a024d3303f88bc6dcc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a830ae51f3f4cb4a024d3303f88bc6dcc">operator=</a> (const <a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& src)</td></tr> <tr class="separator:a830ae51f3f4cb4a024d3303f88bc6dcc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9cc6cc0a06cc510be4d4508e961c684e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a9cc6cc0a06cc510be4d4508e961c684e">Checksum</a> (<a class="el" href="classGlib_1_1Checksum.html">Checksum</a>&& other) noexcept</td></tr> <tr class="separator:a9cc6cc0a06cc510be4d4508e961c684e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8cb8be9cd08df2d812d62035848296ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a8cb8be9cd08df2d812d62035848296ed">operator=</a> (<a class="el" href="classGlib_1_1Checksum.html">Checksum</a>&& other) noexcept</td></tr> <tr class="separator:a8cb8be9cd08df2d812d62035848296ed"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6643625bfdfe1fdabf85df404198dabb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a6643625bfdfe1fdabf85df404198dabb">~Checksum</a> () noexcept</td></tr> <tr class="separator:a6643625bfdfe1fdabf85df404198dabb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a650b113591fcbf08402c4ed32d22aee3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a650b113591fcbf08402c4ed32d22aee3">swap</a> (<a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& other) noexcept</td></tr> <tr class="separator:a650b113591fcbf08402c4ed32d22aee3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5bebbdf1ef296503c0eb86493e675cc7"><td class="memItemLeft" align="right" valign="top">GChecksum* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a5bebbdf1ef296503c0eb86493e675cc7">gobj</a> ()</td></tr> <tr class="separator:a5bebbdf1ef296503c0eb86493e675cc7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a40378be1df574c9f74fb7cc54d7b7056"><td class="memItemLeft" align="right" valign="top">const GChecksum* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a40378be1df574c9f74fb7cc54d7b7056">gobj</a> () const </td></tr> <tr class="separator:a40378be1df574c9f74fb7cc54d7b7056"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6c2600dfa5258c5db06c7525396f8bb3"><td class="memItemLeft" align="right" valign="top">GChecksum* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a6c2600dfa5258c5db06c7525396f8bb3">gobj_copy</a> () const </td></tr> <tr class="memdesc:a6c2600dfa5258c5db06c7525396f8bb3"><td class="mdescLeft"> </td><td class="mdescRight">Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. <a href="#a6c2600dfa5258c5db06c7525396f8bb3">More...</a><br /></td></tr> <tr class="separator:a6c2600dfa5258c5db06c7525396f8bb3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a774f43a89f371e8c50b6ff1da56291d8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a774f43a89f371e8c50b6ff1da56291d8">Checksum</a> (<a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> checksum_type)</td></tr> <tr class="memdesc:a774f43a89f371e8c50b6ff1da56291d8"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a>, using the checksum algorithm <em>checksum_type</em>. <a href="#a774f43a89f371e8c50b6ff1da56291d8">More...</a><br /></td></tr> <tr class="separator:a774f43a89f371e8c50b6ff1da56291d8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae817700e566bd94b9a71f358c4a4eeed"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#ae817700e566bd94b9a71f358c4a4eeed">operator bool</a> () const </td></tr> <tr class="memdesc:ae817700e566bd94b9a71f358c4a4eeed"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a> object is valid. <a href="#ae817700e566bd94b9a71f358c4a4eeed">More...</a><br /></td></tr> <tr class="separator:ae817700e566bd94b9a71f358c4a4eeed"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a75343718b489251d1ea7ea417674b2b6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a75343718b489251d1ea7ea417674b2b6">reset</a> ()</td></tr> <tr class="memdesc:a75343718b489251d1ea7ea417674b2b6"><td class="mdescLeft"> </td><td class="mdescRight">Resets the state of the <em>checksum</em> back to its initial state. <a href="#a75343718b489251d1ea7ea417674b2b6">More...</a><br /></td></tr> <tr class="separator:a75343718b489251d1ea7ea417674b2b6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a49c961d3ecf8a4c62bd2177c2e32ac79"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a49c961d3ecf8a4c62bd2177c2e32ac79">update</a> (const guchar* data, gsize length)</td></tr> <tr class="memdesc:a49c961d3ecf8a4c62bd2177c2e32ac79"><td class="mdescLeft"> </td><td class="mdescRight">Feeds <em>data</em> into an existing <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a>. <a href="#a49c961d3ecf8a4c62bd2177c2e32ac79">More...</a><br /></td></tr> <tr class="separator:a49c961d3ecf8a4c62bd2177c2e32ac79"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6fa8c44666e92d66a6af10495e2df67d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a6fa8c44666e92d66a6af10495e2df67d">update</a> (const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& data)</td></tr> <tr class="memdesc:a6fa8c44666e92d66a6af10495e2df67d"><td class="mdescLeft"> </td><td class="mdescRight">Feeds data into an existing <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a>. <a href="#a6fa8c44666e92d66a6af10495e2df67d">More...</a><br /></td></tr> <tr class="separator:a6fa8c44666e92d66a6af10495e2df67d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2dab438a05d0c74f25daea6c19af8f30"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a2dab438a05d0c74f25daea6c19af8f30">get_digest</a> (guint8* buffer, gsize* digest_len) const </td></tr> <tr class="memdesc:a2dab438a05d0c74f25daea6c19af8f30"><td class="mdescLeft"> </td><td class="mdescRight">Gets the digest from <em>checksum</em> as a raw binary vector and places it into <em>buffer</em>. <a href="#a2dab438a05d0c74f25daea6c19af8f30">More...</a><br /></td></tr> <tr class="separator:a2dab438a05d0c74f25daea6c19af8f30"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a139a8bb447bb6617ffd0b3a2ef38808b"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a139a8bb447bb6617ffd0b3a2ef38808b">get_string</a> () const </td></tr> <tr class="memdesc:a139a8bb447bb6617ffd0b3a2ef38808b"><td class="mdescLeft"> </td><td class="mdescRight">Gets the digest as an hexadecimal string. <a href="#a139a8bb447bb6617ffd0b3a2ef38808b">More...</a><br /></td></tr> <tr class="separator:a139a8bb447bb6617ffd0b3a2ef38808b"><td class="memSeparator" colspan="2"> </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:a034ca483253820866082d6ac82f81a79"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a034ca483253820866082d6ac82f81a79">compute_checksum</a> (<a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> checksum_type, const guchar* data, gsize length)</td></tr> <tr class="memdesc:a034ca483253820866082d6ac82f81a79"><td class="mdescLeft"> </td><td class="mdescRight">Computes the checksum for a binary <em>data</em> of <em>length</em>. <a href="#a034ca483253820866082d6ac82f81a79">More...</a><br /></td></tr> <tr class="separator:a034ca483253820866082d6ac82f81a79"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acfa10bceb4e7c8f7fb4f5782329a9a22"><td class="memItemLeft" align="right" valign="top">static <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#acfa10bceb4e7c8f7fb4f5782329a9a22">compute_checksum</a> (<a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> checksum_type, const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>& str)</td></tr> <tr class="memdesc:acfa10bceb4e7c8f7fb4f5782329a9a22"><td class="mdescLeft"> </td><td class="mdescRight">Computes the checksum of a string. <a href="#acfa10bceb4e7c8f7fb4f5782329a9a22">More...</a><br /></td></tr> <tr class="separator:acfa10bceb4e7c8f7fb4f5782329a9a22"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2f288fe9e08a7ac4e4f81a6e1a957606"><td class="memItemLeft" align="right" valign="top">static gssize </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a2f288fe9e08a7ac4e4f81a6e1a957606">get_length</a> (<a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> checksum_type)</td></tr> <tr class="memdesc:a2f288fe9e08a7ac4e4f81a6e1a957606"><td class="mdescLeft"> </td><td class="mdescRight">Gets the length in bytes of digests of type <em>checksum_type</em>. <a href="#a2f288fe9e08a7ac4e4f81a6e1a957606">More...</a><br /></td></tr> <tr class="separator:a2f288fe9e08a7ac4e4f81a6e1a957606"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:a7f5c4a8761c07e1062a8cb47d0b047b3"><td class="memItemLeft" align="right" valign="top">GChecksum* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a7f5c4a8761c07e1062a8cb47d0b047b3">gobject_</a></td></tr> <tr class="separator:a7f5c4a8761c07e1062a8cb47d0b047b3"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="related"></a> Related Functions</h2></td></tr> <tr><td class="ititle" colspan="2"><p>(Note that these are not member functions.) </p> </td></tr> <tr class="memitem:a8c6efedf5cc68ee2fbd6dbeb054e15af"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#a8c6efedf5cc68ee2fbd6dbeb054e15af">swap</a> (<a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& lhs, <a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& rhs) noexcept</td></tr> <tr class="separator:a8c6efedf5cc68ee2fbd6dbeb054e15af"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aede26bdadd5441f327f6b36ce9a9fbf1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1Checksum.html">Glib::Checksum</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1Checksum.html#aede26bdadd5441f327f6b36ce9a9fbf1">wrap</a> (GChecksum* object, bool take_copy=false)</td></tr> <tr class="memdesc:aede26bdadd5441f327f6b36ce9a9fbf1"><td class="mdescLeft"> </td><td class="mdescRight">A <a class="el" href="namespaceGlib.html#a671306f4a3a0cae5ab4d7a9d54886592">Glib::wrap()</a> method for this object. <a href="#aede26bdadd5441f327f6b36ce9a9fbf1">More...</a><br /></td></tr> <tr class="separator:aede26bdadd5441f327f6b36ce9a9fbf1"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>Computes the checksum for data. </p> <p>This is a generic API for computing checksums (or "digests") for a sequence of arbitrary bytes, using various hashing algorithms like MD5, SHA-1 and SHA-256. Checksums are commonly used in various environments and specifications.</p> <p>glibmm supports incremental checksums by calling <a class="el" href="classGlib_1_1Checksum.html#a49c961d3ecf8a4c62bd2177c2e32ac79" title="Feeds data into an existing Checksum. ">update()</a> as long as there's data available and then using <a class="el" href="classGlib_1_1Checksum.html#a139a8bb447bb6617ffd0b3a2ef38808b" title="Gets the digest as an hexadecimal string. ">get_string()</a> or <a class="el" href="classGlib_1_1Checksum.html#a2dab438a05d0c74f25daea6c19af8f30" title="Gets the digest from checksum as a raw binary vector and places it into buffer. ">get_digest()</a> to compute the checksum and return it either as a string in hexadecimal form, or as a raw sequence of bytes. To compute the checksum for binary blobs and NULL-terminated strings in one go, use the static <a class="el" href="classGlib_1_1Checksum.html#a034ca483253820866082d6ac82f81a79" title="Computes the checksum for a binary data of length. ">compute_checksum()</a> convenience functions().</p> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000001">Since glibmm 2.16:</a></b></dt><dd></dd></dl> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a218ef89e5467d6cb8b2687813b286ced"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::Checksum </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Constructs an invalid object. </p> <p>E.g. for output arguments to methods. There is not much you can do with the object before it has been assigned a valid value. </p> </div> </div> <a class="anchor" id="a1c27c48e7c6ad69617b8480b8aca4531"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::Checksum </td> <td>(</td> <td class="paramtype">GChecksum * </td> <td class="paramname"><em>castitem</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>make_a_copy</em> = <code>false</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">explicit</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a4839f2e9e33ac5bdb1cf696d8ecf4a10"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::Checksum </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td> <td class="paramname"><em>src</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a9cc6cc0a06cc510be4d4508e961c684e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::Checksum </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>&& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a6643625bfdfe1fdabf85df404198dabb"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::~Checksum </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a774f43a89f371e8c50b6ff1da56291d8"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::Checksum </td> <td>(</td> <td class="paramtype"><a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> </td> <td class="paramname"><em>checksum_type</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">explicit</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Creates a new <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a>, using the checksum algorithm <em>checksum_type</em>. </p> <p>If the checksum_type is not known, then operator bool() will return false.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">checksum_type</td><td><a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a> type, one of defined above. </td></tr> </table> </dd> </dl> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a034ca483253820866082d6ac82f81a79"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> Glib::Checksum::compute_checksum </td> <td>(</td> <td class="paramtype"><a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> </td> <td class="paramname"><em>checksum_type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const guchar * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">gsize </td> <td class="paramname"><em>length</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Computes the checksum for a binary <em>data</em> of <em>length</em>. </p> <p>This is a convenience wrapper for g_checksum_new(), g_checksum_get_string() and g_checksum_free().</p> <p>The hexadecimal string returned will be in lower case.</p> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000006">Since glibmm 2.16:</a></b></dt><dd></dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">checksum_type</td><td>A ChecksumType. </td></tr> <tr><td class="paramname">data</td><td>Binary blob to compute the digest of. </td></tr> <tr><td class="paramname">length</td><td>Length of <em>data</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The digest of the binary data as a string in hexadecimal. </dd></dl> </div> </div> <a class="anchor" id="acfa10bceb4e7c8f7fb4f5782329a9a22"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> Glib::Checksum::compute_checksum </td> <td>(</td> <td class="paramtype"><a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> </td> <td class="paramname"><em>checksum_type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>str</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Computes the checksum of a string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">checksum_type</td><td>A ChecksumType </td></tr> <tr><td class="paramname">str</td><td>The string to compute the checksum of. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The checksum as a hexadecimal string. </dd></dl> </div> </div> <a class="anchor" id="a2dab438a05d0c74f25daea6c19af8f30"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Glib::Checksum::get_digest </td> <td>(</td> <td class="paramtype">guint8 * </td> <td class="paramname"><em>buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">gsize * </td> <td class="paramname"><em>digest_len</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> const</td> </tr> </table> </div><div class="memdoc"> <p>Gets the digest from <em>checksum</em> as a raw binary vector and places it into <em>buffer</em>. </p> <p>The size of the digest depends on the type of checksum.</p> <p>Once this function has been called, the <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a> is closed and can no longer be updated with g_checksum_update().</p> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000004">Since glibmm 2.16:</a></b></dt><dd></dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">buffer</td><td>Output buffer. </td></tr> <tr><td class="paramname">digest_len</td><td>An inout parameter. The caller initializes it to the size of <em>buffer</em>. After the call it contains the length of the digest. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a2f288fe9e08a7ac4e4f81a6e1a957606"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static gssize Glib::Checksum::get_length </td> <td>(</td> <td class="paramtype"><a class="el" href="group__glibmmEnums.html#ga5d1c13a9d5c34bff7dd1e74654f282eb">ChecksumType</a> </td> <td class="paramname"><em>checksum_type</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Gets the length in bytes of digests of type <em>checksum_type</em>. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">checksum_type</td><td>A ChecksumType. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The checksum length, or -1 if <em>checksum_type</em> is not supported. </dd></dl> </div> </div> <a class="anchor" id="a139a8bb447bb6617ffd0b3a2ef38808b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> Glib::Checksum::get_string </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Gets the digest as an hexadecimal string. </p> <p>Once this function has been called the <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a> can no longer be updated with g_checksum_update().</p> <p>The hexadecimal characters will be lower case.</p> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000005">Since glibmm 2.16:</a></b></dt><dd></dd></dl> <dl class="section return"><dt>Returns</dt><dd>The hexadecimal representation of the checksum. The returned string is owned by the checksum and should not be modified or freed. </dd></dl> </div> </div> <a class="anchor" id="a5bebbdf1ef296503c0eb86493e675cc7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">GChecksum* Glib::Checksum::gobj </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a40378be1df574c9f74fb7cc54d7b7056"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const GChecksum* Glib::Checksum::gobj </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"> </div> </div> <a class="anchor" id="a6c2600dfa5258c5db06c7525396f8bb3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GChecksum* Glib::Checksum::gobj_copy </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Provides access to the underlying C instance. The caller is responsible for freeing it. Use when directly setting fields in structs. </p> </div> </div> <a class="anchor" id="ae817700e566bd94b9a71f358c4a4eeed"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Glib::Checksum::operator bool </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">explicit</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns true if the <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a> object is valid. </p> <p>This will return false, for instance, if an unsupported checksum type was provided to the constructor. </p> </div> </div> <a class="anchor" id="a830ae51f3f4cb4a024d3303f88bc6dcc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& Glib::Checksum::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td> <td class="paramname"><em>src</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a8cb8be9cd08df2d812d62035848296ed"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& Glib::Checksum::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>&& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a75343718b489251d1ea7ea417674b2b6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Glib::Checksum::reset </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Resets the state of the <em>checksum</em> back to its initial state. </p> <dl class="since_2_18"><dt><b><a class="el" href="since_2_18.html#_since_2_18000001">Since glibmm 2.18:</a></b></dt><dd></dd></dl> </div> </div> <a class="anchor" id="a650b113591fcbf08402c4ed32d22aee3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void Glib::Checksum::swap </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td> <td class="paramname"><em>other</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a49c961d3ecf8a4c62bd2177c2e32ac79"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Glib::Checksum::update </td> <td>(</td> <td class="paramtype">const guchar * </td> <td class="paramname"><em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">gsize </td> <td class="paramname"><em>length</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Feeds <em>data</em> into an existing <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a>. </p> <p>The checksum must still be open, that is g_checksum_get_string() or g_checksum_get_digest() must not have been called on <em>checksum</em>.</p> <dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000003">Since glibmm 2.16:</a></b></dt><dd></dd></dl> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">data</td><td>Buffer used to compute the checksum. </td></tr> <tr><td class="paramname">length</td><td>Size of the buffer, or -1 if it is a null-terminated string. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a6fa8c44666e92d66a6af10495e2df67d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Glib::Checksum::update </td> <td>(</td> <td class="paramtype">const <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01512.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a> & </td> <td class="paramname"><em>data</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Feeds data into an existing <a class="el" href="classGlib_1_1Checksum.html" title="Computes the checksum for data. ">Checksum</a>. </p> <p>The checksum must still be open, that is <a class="el" href="classGlib_1_1Checksum.html#a139a8bb447bb6617ffd0b3a2ef38808b" title="Gets the digest as an hexadecimal string. ">get_string()</a> or <a class="el" href="classGlib_1_1Checksum.html#a2dab438a05d0c74f25daea6c19af8f30" title="Gets the digest from checksum as a raw binary vector and places it into buffer. ">get_digest()</a> must not have been called on the checksum.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">data</td><td>Buffer used to compute the checksum </td></tr> </table> </dd> </dl> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a class="anchor" id="a8c6efedf5cc68ee2fbd6dbeb054e15af"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void swap </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td> <td class="paramname"><em>lhs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classGlib_1_1Checksum.html">Checksum</a>& </td> <td class="paramname"><em>rhs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">related</span></span> </td> </tr> </table> </div><div class="memdoc"> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">lhs</td><td>The left-hand side </td></tr> <tr><td class="paramname">rhs</td><td>The right-hand side </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aede26bdadd5441f327f6b36ce9a9fbf1"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1Checksum.html">Glib::Checksum</a> wrap </td> <td>(</td> <td class="paramtype">GChecksum * </td> <td class="paramname"><em>object</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>take_copy</em> = <code>false</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">related</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>A <a class="el" href="namespaceGlib.html#a671306f4a3a0cae5ab4d7a9d54886592">Glib::wrap()</a> method for this object. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">object</td><td>The C instance. </td></tr> <tr><td class="paramname">take_copy</td><td>False if the result should take ownership of the C instance. True if it should take a new copy or ref. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A C++ instance that wraps this C instance. </dd></dl> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a7f5c4a8761c07e1062a8cb47d0b047b3"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">GChecksum* Glib::Checksum::gobject_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Tue Mar 19 2019 09:56:45 for glibmm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>