Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 749e483016bbc41594aeb77eb13e3491 > files > 521

xrootd-doc-3.3.5-1.fc18.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.3.1"/>
<title>xrootd: XrdCks 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" />
</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">xrootd
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <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>
    </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="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classXrdCks-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">XrdCks Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="XrdCks_8hh_source.html">XrdCks.hh</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for XrdCks:</div>
<div class="dyncontent">
<div class="center"><img src="classXrdCks__inherit__graph.png" border="0" usemap="#XrdCks_inherit__map" alt="Inheritance graph"/></div>
<map name="XrdCks_inherit__map" id="XrdCks_inherit__map">
<area shape="rect" id="node3" href="classXrdCksManager.html" title="XrdCksManager" alt="" coords="5,80,120,107"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for XrdCks:</div>
<div class="dyncontent">
<div class="center"><img src="classXrdCks__coll__graph.png" border="0" usemap="#XrdCks_coll__map" alt="Collaboration graph"/></div>
<map name="XrdCks_coll__map" id="XrdCks_coll__map">
<area shape="rect" id="node2" href="classXrdSysError.html" title="XrdSysError" alt="" coords="139,187,232,213"/><area shape="rect" id="node4" href="classXrdSysError__Table.html" title="XrdSysError_Table" alt="" coords="5,96,136,123"/><area shape="rect" id="node7" href="classXrdSysLogger.html" title="XrdSysLogger" alt="" coords="215,96,319,123"/><area shape="rect" id="node9" href="classXrdSysMutex.html" title="XrdSysMutex" alt="" coords="216,5,317,32"/></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-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab80f115adb2dfeabd82a6e1b0a76487a"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#ab80f115adb2dfeabd82a6e1b0a76487a">Calc</a> (const char *Pfn, <a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;Cks, int doSet=1)=0</td></tr>
<tr class="separator:ab80f115adb2dfeabd82a6e1b0a76487a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0bb93d81b640342701624c62c6d1599"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#ae0bb93d81b640342701624c62c6d1599">Del</a> (const char *Pfn, <a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;Cks)=0</td></tr>
<tr class="separator:ae0bb93d81b640342701624c62c6d1599"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05672e2b895215b4ba2b0bd145c38b18"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a05672e2b895215b4ba2b0bd145c38b18">Get</a> (const char *Pfn, <a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;Cks)=0</td></tr>
<tr class="separator:a05672e2b895215b4ba2b0bd145c38b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d4fedce7b4ed4cfa8b6859988464a23"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a9d4fedce7b4ed4cfa8b6859988464a23">Config</a> (const char *Token, char *Line)=0</td></tr>
<tr class="separator:a9d4fedce7b4ed4cfa8b6859988464a23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4707933a2520e19d5925ab603a2fed18"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a4707933a2520e19d5925ab603a2fed18">Init</a> (const char *ConfigFN, const char *DfltCalc=0)=0</td></tr>
<tr class="separator:a4707933a2520e19d5925ab603a2fed18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a837e5d6ead3e841b9d51db1183f710d5"><td class="memItemLeft" align="right" valign="top">virtual char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a837e5d6ead3e841b9d51db1183f710d5">List</a> (const char *Pfn, char *Buff, int Blen, char Sep=' ')=0</td></tr>
<tr class="separator:a837e5d6ead3e841b9d51db1183f710d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a016bae2c005170443192265bfc9fab54"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a016bae2c005170443192265bfc9fab54">Name</a> (int seqNum=0)=0</td></tr>
<tr class="separator:a016bae2c005170443192265bfc9fab54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acebe7c478f5ecd0e8b14accbc1f7c811"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classXrdCksCalc.html">XrdCksCalc</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#acebe7c478f5ecd0e8b14accbc1f7c811">Object</a> (const char *name)</td></tr>
<tr class="separator:acebe7c478f5ecd0e8b14accbc1f7c811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf4249ff065230646808d387c7f297b6"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#acf4249ff065230646808d387c7f297b6">Size</a> (const char *<a class="el" href="classXrdCks.html#a016bae2c005170443192265bfc9fab54">Name</a>=0)=0</td></tr>
<tr class="separator:acf4249ff065230646808d387c7f297b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6e9ac140b5fb83e1bd0250b1bcb1409"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#ac6e9ac140b5fb83e1bd0250b1bcb1409">Set</a> (const char *Pfn, <a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;Cks, int myTime=0)=0</td></tr>
<tr class="separator:ac6e9ac140b5fb83e1bd0250b1bcb1409"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fae1714e39cb66a5e2f23111f1296f9"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a3fae1714e39cb66a5e2f23111f1296f9">Ver</a> (const char *Pfn, <a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;Cks)=0</td></tr>
<tr class="separator:a3fae1714e39cb66a5e2f23111f1296f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adba6cdc5a9075b3ca4e30c851d234fd4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#adba6cdc5a9075b3ca4e30c851d234fd4">XrdCks</a> (<a class="el" href="classXrdSysError.html">XrdSysError</a> *erP)</td></tr>
<tr class="memdesc:adba6cdc5a9075b3ca4e30c851d234fd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#adba6cdc5a9075b3ca4e30c851d234fd4">More...</a><br/></td></tr>
<tr class="separator:adba6cdc5a9075b3ca4e30c851d234fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9822eef9ef5d7eafb4e2bdaa14ebaf45"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a9822eef9ef5d7eafb4e2bdaa14ebaf45">~XrdCks</a> ()</td></tr>
<tr class="memdesc:a9822eef9ef5d7eafb4e2bdaa14ebaf45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a9822eef9ef5d7eafb4e2bdaa14ebaf45">More...</a><br/></td></tr>
<tr class="separator:a9822eef9ef5d7eafb4e2bdaa14ebaf45"><td class="memSeparator" colspan="2">&#160;</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:a9f9d47cafc125ed5b2f67b9e021d4f82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classXrdSysError.html">XrdSysError</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classXrdCks.html#a9f9d47cafc125ed5b2f67b9e021d4f82">eDest</a></td></tr>
<tr class="separator:a9f9d47cafc125ed5b2f67b9e021d4f82"><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>This class defines the checksum management interface. It should be used as the base class for a plugin. When used that way, the shared library holding the plugin must define a "C" entry point named XrdCksInit() as described at the end of this include file. Note that you can also base you plugin on the native implementation, <a class="el" href="classXrdCks.html">XrdCks</a>, and replace only selected methods. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="adba6cdc5a9075b3ca4e30c851d234fd4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">XrdCks::XrdCks </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classXrdSysError.html">XrdSysError</a> *&#160;</td>
          <td class="paramname"><em>erP</em></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">

<p>Constructor. </p>

</div>
</div>
<a class="anchor" id="a9822eef9ef5d7eafb4e2bdaa14ebaf45"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual XrdCks::~XrdCks </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 class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab80f115adb2dfeabd82a6e1b0a76487a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Calc </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;&#160;</td>
          <td class="paramname"><em>Cks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>doSet</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Calculate a new checksum for a physical file using the checksum algorithm named in the Cks parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pfn</td><td>The physical name of the file to be checksumed. </td></tr>
    <tr><td class="paramname">Cks</td><td>For input, it specifies the checksum algorithm to be used. For output, the checksum value is returned upon success. </td></tr>
    <tr><td class="paramname">doset</td><td>When true, the new value must replace any existing value in the Pfn's extended file attributes.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: zero with Cks structure holding the checksum value. Failure: -errno (see significant error numbers below). </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a3ed49596ca52ac4228a0670c6aae78e1">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="a9d4fedce7b4ed4cfa8b6859988464a23"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Config </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Token</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>Line</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Parse a configuration directives specific to the checksum manager.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Token</td><td>Points to the directive that triggered the call. </td></tr>
    <tr><td class="paramname">Line</td><td>All the characters after the directive.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: 1 Failure: 0 </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a055810ea18613e537b001d6e70c793f1">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="ae0bb93d81b640342701624c62c6d1599"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Del </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;&#160;</td>
          <td class="paramname"><em>Cks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Delete the checksum from the Pfn's xattrs.</p>
<dl class="section return"><dt>Returns</dt><dd>Success: 0 Failure: -errno (see significant error numbers below). </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a4649527a636cf681cf7e99bc8b39a54a">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="a05672e2b895215b4ba2b0bd145c38b18"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Get </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;&#160;</td>
          <td class="paramname"><em>Cks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Retreive the checksum from the Pfn's xattrs and return it and indicate whether or not it is stale (i.e. the file modification has changed or the name and length are not the expected values).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pfn</td><td>The physical name of the file to be checksumed. </td></tr>
    <tr><td class="paramname">Cks</td><td>For input, it specifies the checksum type to return. For output, the checksum value is returned upon success.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: The length of the binary checksum in the Cks structure. Failure: -errno (see significant error numbers below). </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#aa4a1ccb56c5ee8d40adf8be50ac94200">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="a4707933a2520e19d5925ab603a2fed18"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Init </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>ConfigFN</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>DfltCalc</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Fully initialize the manager which includes loading any plugins.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ConfigFN</td><td>Points to the configuration file path. </td></tr>
    <tr><td class="paramname">DfltCalc</td><td>Is the default checksum and should be defaulted if NULL. The default implementation defaults this to adler32. A default is only needed should the checksum name in the <a class="el" href="classXrdCksData.html">XrdCksData</a> object be omitted.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: 1 Failure: 0 </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a096d68c957ecf85d628ef74e4d0bcaa1">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="a837e5d6ead3e841b9d51db1183f710d5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual char* XrdCks::List </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>Buff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Blen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>Sep</em> = <code>'&#160;'</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>List names of the checksums associated with a Pfn or all supported ones.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pfn</td><td>The name of the physical file whose checksum names are to be returned. When Pfn is null, return all supported checksum algorithm names. </td></tr>
    <tr><td class="paramname">Buff</td><td>Points to a buffer, at least 64 bytes in length, to hold a "Sep" separated list of checksum names. </td></tr>
    <tr><td class="paramname">Blen</td><td>The length of the buffer. </td></tr>
    <tr><td class="paramname">Sep</td><td>The separation character to be used between adjacent names.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: Pointer to Buff holding at least one checksum name. Failure: A nil pointer is returned. </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#ad1454d04a47b68a4812460292bfa429f">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="a016bae2c005170443192265bfc9fab54"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* XrdCks::Name </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>seqNum</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the name of the checksums associated with a sequence number. Note that <a class="el" href="classXrdCks.html#a016bae2c005170443192265bfc9fab54">Name()</a> may be called prior to final config to see if there are any chksums to configure and avoid unintended errors.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">seqNum</td><td>The sequence number. Zero signifies the default name. Higher numbers are alternates. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: Pointer to the name. Failure: A nil pointer is returned (no more alternates exist). </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a1884ad69eafceaf832cd4a2563765672">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="acebe7c478f5ecd0e8b14accbc1f7c811"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classXrdCksCalc.html">XrdCksCalc</a>* XrdCks::Object </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get a new <a class="el" href="classXrdCksCalc.html">XrdCksCalc</a> object that can calculate the checksum corresponding to the specified name or the default object if name is a null pointer. The object can be used to compute checksums on the fly. The object's Recycle() method must be used to delete it.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>The name of the checksum algorithm. If null, use the default one.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: A pointer to the object is returned. Failure: Zero if no corresponding object exists. </dd></dl>

<p>Reimplemented in <a class="el" href="classXrdCksManager.html#a8207ea6e31a632da3fbfdf54b65084cc">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="ac6e9ac140b5fb83e1bd0250b1bcb1409"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Set </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;&#160;</td>
          <td class="paramname"><em>Cks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>myTime</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set a file's checksum in the extended attributes along with the file's mtime and the time of setting.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pfn</td><td>The physical name of the file to be set. </td></tr>
    <tr><td class="paramname">Cks</td><td>Specifies the checksum name and value. </td></tr>
    <tr><td class="paramname">myTime</td><td>When true then the fmTime and gmTime in the Cks structure are to be used; as opposed to the current time.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: zero is returned. Failure: -errno (see significant error numbers below). </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a5e99dffd3f2dcd8240e71e04d9ff8da8">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="acf4249ff065230646808d387c7f297b6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Size </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Name</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Get the binary length of the checksum with the corresponding name.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">name.</td><td>The checksum algorithm name. If null, use the default name.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: checksum length. Failure: Zero if the checksum name does not exist. </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#afdf961d215d4b8f77a46f93337807cde">XrdCksManager</a>.</p>

</div>
</div>
<a class="anchor" id="a3fae1714e39cb66a5e2f23111f1296f9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int XrdCks::Ver </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>Pfn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classXrdCksData.html">XrdCksData</a> &amp;&#160;</td>
          <td class="paramname"><em>Cks</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Retreive the checksum from the Pfn's xattrs and compare it to the supplied checksum. If the checksum is not available or is stale, a new checksum is calculated and written to the extended attributes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Pfn</td><td>The physical name of the file to be verified. </td></tr>
    <tr><td class="paramname">Cks</td><td>Specifies the checksum name and value.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Success: True Failure: False (the checksums do not match) or -errno indicating that verification could not be performed (see significant error numbers below). </dd></dl>

<p>Implemented in <a class="el" href="classXrdCksManager.html#a24919efbf39915836a78e1fdc74d170c">XrdCksManager</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a9f9d47cafc125ed5b2f67b9e021d4f82"></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="classXrdSysError.html">XrdSysError</a>* XrdCks::eDest</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Significant errno values:</p>
<p>-EDOM The supplied checksum length is invalid for the checksum name. -ENOTSUP The supplied or default checksum name is not supported. -ESRCH Checksum does not exist for file. -ESTALE The file's checksum is no longer valid. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="XrdCks_8hh_source.html">XrdCks.hh</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>