<!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 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 List</span></a></li> <li><a href="globals.html"><span>File 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> <span class="preprocessor">#ifndef _XRDOSS_H</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor"></span><span class="preprocessor">#define _XRDOSS_H</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor"></span><span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">/* X r d O s s & X r d O s s D F */</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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> <span class="comment">/* All Rights Reserved */</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <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> <span class="comment">/* */</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <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> <span class="comment">/* */</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <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> <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> <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> <span class="comment">/* option) any later version. */</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <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> <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> <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> <span class="comment">/* License for more details. */</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <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> <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> <span class="comment">/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">/* The copyright holder's institutional names and contributor's names may not */</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <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> <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> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <dirent.h></span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <errno.h></span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <strings.h></span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <sys/stat.h></span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <sys/types.h></span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <string.h></span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <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> <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> <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> </div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <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> <span class="preprocessor"></span><span class="preprocessor">#define XrdOssOK 0</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <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> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> <div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="classXrdOssDF.html"> 57</a></span> <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> {</div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <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> <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> &) {<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> <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> </div> <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <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> <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> <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> <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> <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> <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> <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> <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> <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> <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> &) {<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> <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> <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> <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> <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> <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> <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> </div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// Methods common to both</span></div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <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> <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> </div> <div class="line"><a name="l00085"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a4858b1b9dd78c711a09930f1f165b685"> 85</a></span>  <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> <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> </div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a name="l00090"></a><span class="lineno"><a class="code" href="classXrdOssDF.html#a4e30d4cefcc25f3dc16a0ea40b7dd962"> 90</a></span> <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> };</div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">/* X r d O s s */</span></div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// Options that can be passed to Create()</span></div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <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> <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> <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> <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> <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> <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> <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> <span class="preprocessor"></span></div> <div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Options that can be passed to Stat()</span></div> <div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <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> <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> <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> <span class="preprocessor"></span></div> <div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// Class passed to StatVS()</span></div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">//</span></div> <div class="line"><a name="l00113"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html"> 113</a></span> <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> {</div> <div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <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> <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> <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> <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> <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> <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> <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> <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> <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> </div> <div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="classXrdOssVSInfo.html#adf9191eeb40d89dcf41672662b3adaef"> 125</a></span>  <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>  <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>  <a class="code" href="classXrdOssVSInfo.html#ad1e129e1ca77ceb043d42b771e0ce0ed">~XrdOssVSInfo</a>() {}</div> <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div> <div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="classXrdOss.html"> 130</a></span> <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> {</div> <div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <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> <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> </div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <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> <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> &, </div> <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordtype">int</span> opts=0)=0;</div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <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> <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>  <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> <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>  {<span class="keywordflow">return</span> -ENOTSUP;}</div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <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> <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>  <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> <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> <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> &blen, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)</div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {<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> <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> &env, <span class="keyword">const</span> <span class="keywordtype">char</span> *cgrp, <span class="keywordtype">char</span> *buff, <span class="keywordtype">int</span> &blen)</div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {<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> <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> &blen, <a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> *eP=0)</div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {<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> <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> &attr,</div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <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> <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> <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> </div> <div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="classXrdOss.html#a5e97388e4a2b017c371c36cf52ddff75"> 159</a></span> <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> </div> <div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="classXrdOss.html#a972a0fc60042bf52766829f10fc8c5f9"> 161</a></span> <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>  {<span class="keywordflow">return</span> -ENOTSUP;}</div> <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div> <div class="line"><a name="l00164"></a><span class="lineno"><a class="code" href="classXrdOss.html#a745c3897fd34258166f7abe7db7c0b33"> 164</a></span> <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>  {<span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)strlen(Path) >= blen) <span class="keywordflow">return</span> -ENAMETOOLONG;</div> <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  strcpy(buff, Path); <span class="keywordflow">return</span> 0;</div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <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> <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> &rc)</div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {rc = 0; <span class="keywordflow">return</span> Path;}</div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div> <div class="line"><a name="l00172"></a><span class="lineno"><a class="code" href="classXrdOss.html#ab9a62e6c9e5b2a6278d4fb3ca7911c93"> 172</a></span>  <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> <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> };</div> <div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div> <div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <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> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">//------------------------------------------------------------------------------</span></div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment"></span><span class="comment">//------------------------------------------------------------------------------</span></div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment"></span><span class="comment">//------------------------------------------------------------------------------</span></div> <div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"></span><span class="comment">//------------------------------------------------------------------------------</span></div> <div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="preprocessor">#endif</span></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <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>