Sophie

Sophie

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

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: XrdOss.hh Source File</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><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_68e73314edeeefc25e93a1a2a66925b3.html">XrdOss</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">XrdOss.hh</div>  </div>
</div><!--header-->
<div class="contents">
<a href="XrdOss_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef _XRDOSS_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _XRDOSS_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor"></span><span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">/*                     X r d O s s   &amp;   X r d O s s D F                      */</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">/* (c) 2003 by the Board of Trustees of the Leland Stanford, Jr., University  */</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">/*                            All Rights Reserved                             */</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">/*   Produced by Andrew Hanushevsky for Stanford University under contract    */</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">/*              DE-AC02-76-SFO0515 with the Department of Energy              */</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">/* This file is part of the XRootD software suite.                            */</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">/* XRootD is free software: you can redistribute it and/or modify it under    */</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">/* the terms of the GNU Lesser General Public License as published by the     */</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">/* Free Software Foundation, either version 3 of the License, or (at your     */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">/* option) any later version.                                                 */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">/* XRootD is distributed in the hope that it will be useful, but WITHOUT      */</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      */</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">/* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public       */</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">/* License for more details.                                                  */</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">/* You should have received a copy of the GNU Lesser General Public License   */</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment">/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file  */</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment">/* COPYING (GPL license).  If not, see &lt;http://www.gnu.org/licenses/&gt;.        */</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">/*                                                                            */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment">/* The copyright holder&#39;s institutional names and contributor&#39;s names may not */</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">/* be used to endorse or promote products derived from this software without  */</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">/* specific prior written permission of the institution or contributor.       */</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;dirent.h&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;strings.h&gt;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;sys/stat.h&gt;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">class </span><a class="code" href="classXrdOucEnv.html">XrdOucEnv</a>;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">class </span><a class="code" href="classXrdSysLogger.html">XrdSysLogger</a>;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="keyword">class </span><a class="code" href="classXrdSfsAio.html">XrdSfsAio</a>;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#ifndef XrdOssOK</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#aa17cbd361f67066cf3593ee24777c9b3">   45</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XrdOssOK 0</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">/*                              X r d O s s D F                               */</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  </div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classXrdOssDF.html">   57</a></span>&#160;<span class="keyword">class </span><a class="code" href="classXrdOssDF.html">XrdOssDF</a></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;{</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                <span class="comment">// Directory oriented methods</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a1ce856eda541026ee14f2134b9603fff">   61</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a1ce856eda541026ee14f2134b9603fff">Opendir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> &amp;)           {<span class="keywordflow">return</span> -ENOTDIR;}</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a578f209886410328da72e5bfd8412033">   62</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a578f209886410328da72e5bfd8412033">Readdir</a>(<span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> blen)                {<span class="keywordflow">return</span> -ENOTDIR;}</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                <span class="comment">// File oriented methods</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#ac109fefb5d3b815ae44224a9f3b5dbef">   65</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#ac109fefb5d3b815ae44224a9f3b5dbef">Fchmod</a>(mode_t mode)                          {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a395f2d31e5f20b0222625972b654a482">   66</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a395f2d31e5f20b0222625972b654a482">Fstat</a>(<span class="keyword">struct</span> stat *)                         {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a067c585420924a61a71e10c2e7c31a26">   67</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a067c585420924a61a71e10c2e7c31a26">Fsync</a>()                                      {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#ad1a4f0d4943d033151fe4deb94649e53">   68</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#ad1a4f0d4943d033151fe4deb94649e53">Fsync</a>(<a class="code" href="classXrdSfsAio.html">XrdSfsAio</a> *aiop)                       {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a3b63c0fa124872015020e9e16b58e58d">   69</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a3b63c0fa124872015020e9e16b58e58d">Ftruncate</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>)                {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a8c80a005a70d4ffbc1dfc9b8f06ded62">   70</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a8c80a005a70d4ffbc1dfc9b8f06ded62">getFD</a>()                                      {<span class="keywordflow">return</span> -1;}</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#ae3f09f648ade1d60124d4e85b1c03c4c">   71</a></span>&#160;<span class="keyword">virtual</span> off_t   <a class="code" href="classXrdOssDF.html#ae3f09f648ade1d60124d4e85b1c03c4c">getMmap</a>(<span class="keywordtype">void</span> **addr)                         {<span class="keywordflow">return</span> 0;}</div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a3bb81b0b55c2a5895f97862e7f5caf93">   72</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a3bb81b0b55c2a5895f97862e7f5caf93">isCompressed</a>(<span class="keywordtype">char</span> *cxidp=0)                  {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#ad07b8c774d34cd06cdbb4547ec01ca49">   73</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#ad07b8c774d34cd06cdbb4547ec01ca49">Open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, mode_t, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> &amp;) {<span class="keywordflow">return</span> -EISDIR;}</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a8e9954979bec63c9a309efe5cf15eb58">   74</a></span>&#160;<span class="keyword">virtual</span> ssize_t <a class="code" href="classXrdOssDF.html#a8e9954979bec63c9a309efe5cf15eb58">Read</a>(off_t, <span class="keywordtype">size_t</span>)                          {<span class="keywordflow">return</span> (ssize_t)-EISDIR;}</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a8729e1e55f790cef194df448898f3f67">   75</a></span>&#160;<span class="keyword">virtual</span> ssize_t <a class="code" href="classXrdOssDF.html#a8729e1e55f790cef194df448898f3f67">Read</a>(<span class="keywordtype">void</span> *, off_t, <span class="keywordtype">size_t</span>)                  {<span class="keywordflow">return</span> (ssize_t)-EISDIR;}</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a3fdb520a7a1c059525dc80714b8319cc">   76</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a3fdb520a7a1c059525dc80714b8319cc">Read</a>(<a class="code" href="classXrdSfsAio.html">XrdSfsAio</a> *aoip)                        {<span class="keywordflow">return</span> (ssize_t)-EISDIR;}</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a1470ef20c49442c00332ea025bf3e522">   77</a></span>&#160;<span class="keyword">virtual</span> ssize_t <a class="code" href="classXrdOssDF.html#a1470ef20c49442c00332ea025bf3e522">ReadRaw</a>(    <span class="keywordtype">void</span> *, off_t, <span class="keywordtype">size_t</span>)           {<span class="keywordflow">return</span> (ssize_t)-EISDIR;}</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#af11a6c22505f5d07d23959bcfe013f7e">   78</a></span>&#160;<span class="keyword">virtual</span> ssize_t <a class="code" href="classXrdOssDF.html#af11a6c22505f5d07d23959bcfe013f7e">Write</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *, off_t, <span class="keywordtype">size_t</span>)           {<span class="keywordflow">return</span> (ssize_t)-EISDIR;}</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a4a0d2c3de27f709033b6bfedf07ae0a4">   79</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a4a0d2c3de27f709033b6bfedf07ae0a4">Write</a>(<a class="code" href="classXrdSfsAio.html">XrdSfsAio</a> *aiop)                       {<span class="keywordflow">return</span> (ssize_t)-EISDIR;}</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="comment">// Methods common to both</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a7db62484951a5f4eae23ba6dc8664766">Close</a>(<span class="keywordtype">long</span> <span class="keywordtype">long</span> *retsz=0)=0;</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a8f537b553240553c3744099f7b9e9980">   83</a></span>&#160;<span class="keyword">inline</span>  <span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a8f537b553240553c3744099f7b9e9980">Handle</a>() {<span class="keywordflow">return</span> <a class="code" href="classXrdOssDF.html#a4e30d4cefcc25f3dc16a0ea40b7dd962">fd</a>;}</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a4858b1b9dd78c711a09930f1f165b685">   85</a></span>&#160;                <a class="code" href="classXrdOssDF.html#a4858b1b9dd78c711a09930f1f165b685">XrdOssDF</a>() {<a class="code" href="classXrdOssDF.html#a4e30d4cefcc25f3dc16a0ea40b7dd962">fd</a> = -1;}</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a9930e4c21cb05de5ee3a75247af08090">   86</a></span>&#160;<span class="keyword">virtual</span>        <a class="code" href="classXrdOssDF.html#a9930e4c21cb05de5ee3a75247af08090">~XrdOssDF</a>() {}</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a4e30d4cefcc25f3dc16a0ea40b7dd962">   90</a></span>&#160;<span class="keywordtype">int</span>     <a class="code" href="classXrdOssDF.html#a4e30d4cefcc25f3dc16a0ea40b7dd962">fd</a>;      <span class="comment">// The associated file descriptor.</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">/*                                X r d O s s                                 */</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment">// Options that can be passed to Create()</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#acec3a73ff714c2e895edffa5e511bffd">   99</a></span>&#160;<span class="preprocessor">#define XRDOSS_mkpath  0x01</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#ab10331f4e1f940aed2ceeadd74ab96fb">  100</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XRDOSS_new     0x02</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#aa0e81a9954d2f13fc922a24e8f70d95d">  101</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XRDOSS_Online  0x04</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#a14d3759eed76248d56900f3e12093240">  102</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XRDOSS_isPFN   0x10</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#aa11daab4107de2447808e8931dec4085">  103</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XRDOSS_isMIG   0x20</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#aa72b6df1f174194b097236333ef42184">  104</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XRDOSS_setnoxa 0x40</span></div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment">// Options that can be passed to Stat()</span></div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#af532b00e4e5b30ac2adbb68872755d8c">  108</a></span>&#160;<span class="preprocessor">#define XRDOSS_resonly 0x01</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="XrdOss_8hh.html#af5854edc7d9664059a707ff019cfc474">  109</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define XRDOSS_updtatm 0x02</span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">// Class passed to StatVS()</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html">  113</a></span>&#160;<span class="keyword">class </span><a class="code" href="classXrdOssVSInfo.html">XrdOssVSInfo</a></div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;{</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#abaec83091ee7acadcf22d470c9bad3e1">  116</a></span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdOssVSInfo.html#abaec83091ee7acadcf22d470c9bad3e1">Total</a>;   <span class="comment">// Total bytes</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#ad9182e8d4e919edb81803bdc06bbd8b6">  117</a></span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdOssVSInfo.html#ad9182e8d4e919edb81803bdc06bbd8b6">Free</a>;    <span class="comment">// Total bytes free</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#a9ae261012fc179049af6464e2f115320">  118</a></span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdOssVSInfo.html#a9ae261012fc179049af6464e2f115320">Large</a>;   <span class="comment">// Total bytes in largest partition</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#a0b2bb29837e662432853b2bc551c6c1d">  119</a></span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdOssVSInfo.html#a0b2bb29837e662432853b2bc551c6c1d">LFree</a>;   <span class="comment">// Max   bytes free in contiguous chunk</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#a1f09dfdc65605848efb0732c1264064d">  120</a></span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdOssVSInfo.html#a1f09dfdc65605848efb0732c1264064d">Usage</a>;   <span class="comment">// Used  bytes (if usage enabled)</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#af08b63ba7888c54d292dd407e468658a">  121</a></span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdOssVSInfo.html#af08b63ba7888c54d292dd407e468658a">Quota</a>;   <span class="comment">// Quota bytes (if quota enabled)</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#a5bf99c114c506bbdd463417a4d946ca5">  122</a></span>&#160;<span class="keywordtype">int</span>       <a class="code" href="classXrdOssVSInfo.html#a5bf99c114c506bbdd463417a4d946ca5">Extents</a>; <span class="comment">// Number of partitions/extents</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#a74488ba3219d044cbe3a3cc07260e2c4">  123</a></span>&#160;<span class="keywordtype">int</span>       <a class="code" href="classXrdOssVSInfo.html#a74488ba3219d044cbe3a3cc07260e2c4">Reserved</a>;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#adf9191eeb40d89dcf41672662b3adaef">  125</a></span>&#160;          <a class="code" href="classXrdOssVSInfo.html#adf9191eeb40d89dcf41672662b3adaef">XrdOssVSInfo</a>() : <a class="code" href="classXrdOssVSInfo.html#abaec83091ee7acadcf22d470c9bad3e1">Total</a>(0),<a class="code" href="classXrdOssVSInfo.html#ad9182e8d4e919edb81803bdc06bbd8b6">Free</a>(0),<a class="code" href="classXrdOssVSInfo.html#a9ae261012fc179049af6464e2f115320">Large</a>(0),<a class="code" href="classXrdOssVSInfo.html#a0b2bb29837e662432853b2bc551c6c1d">LFree</a>(0),<a class="code" href="classXrdOssVSInfo.html#a1f09dfdc65605848efb0732c1264064d">Usage</a>(-1),</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                           <a class="code" href="classXrdOssVSInfo.html#af08b63ba7888c54d292dd407e468658a">Quota</a>(-1),<a class="code" href="classXrdOssVSInfo.html#a5bf99c114c506bbdd463417a4d946ca5">Extents</a>(0),<a class="code" href="classXrdOssVSInfo.html#a74488ba3219d044cbe3a3cc07260e2c4">Reserved</a>(0) {}</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#ad1e129e1ca77ceb043d42b771e0ce0ed">  127</a></span>&#160;         <a class="code" href="classXrdOssVSInfo.html#ad1e129e1ca77ceb043d42b771e0ce0ed">~XrdOssVSInfo</a>() {}</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;};</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  </div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classXrdOss.html">  130</a></span>&#160;<span class="keyword">class </span><a class="code" href="classXrdOss.html">XrdOss</a></div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;{</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keyword">virtual</span> <a class="code" href="classXrdOssDF.html">XrdOssDF</a> *<a class="code" href="classXrdOss.html#a521f1006568b61e2b3eeddfe3ae7cde1">newDir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *tident)=0;</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="keyword">virtual</span> <a class="code" href="classXrdOssDF.html">XrdOssDF</a> *<a class="code" href="classXrdOss.html#aae8b9f46e13f6d335bf6f555c2a07c24">newFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *tident)=0;</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a161199b6960900e7f144d79cbf523e29">Chmod</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, mode_t mode, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)=0;</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#adabf52668f2613d12a0e4216e1803dfc">Create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, mode_t, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> &amp;, </div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;                       <span class="keywordtype">int</span> opts=0)=0;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a24220c3a3ea3546f91343e1b9b6b0fa9">Init</a>(<a class="code" href="classXrdSysLogger.html">XrdSysLogger</a> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *)=0;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#af2d01385d2d6498f547aa1b06a9ab352">Mkdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, mode_t mode, <span class="keywordtype">int</span> mkpath=0,</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                      <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)=0;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="code" href="classXrdOss.html#ae5c64225f4db80828682625e73646d79">  142</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#ae5c64225f4db80828682625e73646d79">Reloc</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *x=0)</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;                      {<span class="keywordflow">return</span> -ENOTSUP;}</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#ac4e9e0c7fb86971961c8100f7670a424">Remdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span> Opts=0, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)=0;</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#ad4d4db7490b00d3637dd432cc436e174">Rename</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *,</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;                       <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP1=0, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP2=0)=0;</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a7e6532e4bbaf1413ad89e1815759abd1">Stat</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">struct</span> stat *, <span class="keywordtype">int</span> opts=0, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)=0;</div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="code" href="classXrdOss.html#a4189bbda56a5c862c63df13f8efd16a5">  148</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a4189bbda56a5c862c63df13f8efd16a5">StatFS</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> &amp;blen, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;                      {<span class="keywordflow">return</span> -ENOTSUP;}</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classXrdOss.html#a7250365567f9bb0d524d0ba1e034d630">  150</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a7250365567f9bb0d524d0ba1e034d630">StatLS</a>(<a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> &amp;env, <span class="keyword">const</span> <span class="keywordtype">char</span> *cgrp, <span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> &amp;blen)</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;                      {<span class="keywordflow">return</span> -ENOTSUP;}</div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="classXrdOss.html#af0051f3fb42c1cd8d7bb85552ae36c19">  152</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#af0051f3fb42c1cd8d7bb85552ae36c19">StatXA</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> &amp;blen, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                      {<span class="keywordflow">return</span> -ENOTSUP;}</div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="code" href="classXrdOss.html#a4df6594ae695087f22e53f80ae4b1cb5">  154</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a4df6594ae695087f22e53f80ae4b1cb5">StatXP</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> &amp;attr,</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                       <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0) {<span class="keywordflow">return</span> -ENOTSUP;}</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a7dcca3e88a3bb50303425572d73c148d">Truncate</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)=0;</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a33ba3ddf6ff4a497ab20ef7836d78f28">Unlink</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span> Opts=0, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)=0;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="classXrdOss.html#a5e97388e4a2b017c371c36cf52ddff75">  159</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a5e97388e4a2b017c371c36cf52ddff75">Stats</a>(<span class="keywordtype">char</span> *bp, <span class="keywordtype">int</span> bl) {<span class="keywordflow">return</span> 0;}</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classXrdOss.html#a972a0fc60042bf52766829f10fc8c5f9">  161</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a972a0fc60042bf52766829f10fc8c5f9">StatVS</a>(<a class="code" href="classXrdOssVSInfo.html">XrdOssVSInfo</a> *sP, <span class="keyword">const</span> <span class="keywordtype">char</span> *sname=0, <span class="keywordtype">int</span> updt=0)</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                      {<span class="keywordflow">return</span> -ENOTSUP;}</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classXrdOss.html#a745c3897fd34258166f7abe7db7c0b33">  164</a></span>&#160;<span class="keyword">virtual</span> <span class="keywordtype">int</span>     <a class="code" href="classXrdOss.html#a745c3897fd34258166f7abe7db7c0b33">Lfn2Pfn</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Path, <span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> blen)</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;                       {<span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)strlen(Path) &gt;= blen) <span class="keywordflow">return</span> -ENAMETOOLONG;</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                        strcpy(buff, Path); <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                       }</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="keyword">virtual</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="classXrdOss.html#aa94b7ab6d687ec2ededf6d21945a27fa">  169</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>     *<a class="code" href="classXrdOss.html#a745c3897fd34258166f7abe7db7c0b33">Lfn2Pfn</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *Path, <span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> blen, <span class="keywordtype">int</span> &amp;rc)</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                       {rc = 0; <span class="keywordflow">return</span> Path;}</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="classXrdOss.html#ab9a62e6c9e5b2a6278d4fb3ca7911c93">  172</a></span>&#160;                <a class="code" href="classXrdOss.html#ab9a62e6c9e5b2a6278d4fb3ca7911c93">XrdOss</a>() {}</div>
<div class="line"><a name="l00173"></a><span class="lineno"><a class="code" href="classXrdOss.html#af2b4482bd58ed793840cb10caf8bfc2c">  173</a></span>&#160;<span class="keyword">virtual</span>        <a class="code" href="classXrdOss.html#af2b4482bd58ed793840cb10caf8bfc2c">~XrdOss</a>() {}</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;};</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">/*           S t o r a g e   S y s t e m   I n s t a n t i a t o r            */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">/******************************************************************************/</span></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment"></span><span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment"></span><span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment"></span><span class="comment">//------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></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>