<!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: XrdPosixXrootd.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_123d967a9a422fecfee55f769e8dd298.html">XrdPosix</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">XrdPosixXrootd.hh</div> </div> </div><!--header--> <div class="contents"> <a href="XrdPosixXrootd_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 __XRDPOSIXXROOTD_H__</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor"></span><span class="preprocessor">#define __XRDPOSIXXROOTD_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 P o s i x X r o o t d */</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) 2010 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">/* Modified by Frank Winklmeier to add the full Posix file system definition. */</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/******************************************************************************/</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <dirent.h></span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <unistd.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/statvfs.h></span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <sys/types.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="preprocessor">#if defined(__APPLE__) || defined(__FreeBSD__)</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span><span class="preprocessor">#include <sys/param.h></span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <sys/mount.h></span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#else</span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span><span class="preprocessor">#include <sys/statfs.h></span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="XrdPosixOsDep_8hh.html">XrdPosix/XrdPosixOsDep.hh</a>"</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include "<a class="code" href="XrdSysPthread_8hh.html">XrdSys/XrdSysPthread.hh</a>"</span></div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">class </span><a class="code" href="classXrdOucCache.html">XrdOucCache</a>;</div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">class </span><a class="code" href="classXrdOucEnv.html">XrdOucEnv</a>;</div> <div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">class </span><a class="code" href="classXrdPosixCallBack.html">XrdPosixCallBack</a>;</div> <div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">class </span>XrdPosixFile;</div> <div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">class </span>XrdPosixDir;</div> <div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div> <div class="line"><a name="l00056"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classXrdPosixXrootd.html">XrdPosixXrootd</a></div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// POSIX methods</span></div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">//</span></div> <div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a34c34a413521d187ffd6673c1b674af5">Close</a>(<span class="keywordtype">int</span> fildes, <span class="keywordtype">int</span> Stream=0);</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="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#ae128e8bf4ec5f8b3b0d77a946c976589">Closedir</a>(DIR *dirp);</div> <div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a18e1fad19bb34b35684904e2261e24c9">Fstat</a>(<span class="keywordtype">int</span> fildes, <span class="keyword">struct</span> stat *buf);</div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div> <div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a47f97b6cdae1820da743232fd66d1855">Fsync</a>(<span class="keywordtype">int</span> fildes);</div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a4dd9dd4da2ad9016545946c904e21f25">Ftruncate</a>(<span class="keywordtype">int</span> fildes, off_t offset);</div> <div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div> <div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdPosixXrootd.html#a9949237d673770dae287a7773082eeb8">Getxattr</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordtype">void</span> *value, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> size);</div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div> <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">static</span> off_t <a class="code" href="classXrdPosixXrootd.html#a8afc8d491d89fa42122b0b1dfdbf8fa8">Lseek</a>(<span class="keywordtype">int</span> fildes, off_t offset, <span class="keywordtype">int</span> whence);</div> <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a777ebca59027dcda32c0e63272beb4af">Mkdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, mode_t mode);</div> <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a2c41ccae50d1aad281353283d701d664"> 79</a></span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a2c41ccae50d1aad281353283d701d664">isStream</a> = 0x40000000; <span class="comment">// Internal for Open oflag</span></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="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#aee37e2e7256119f942337d2a7a40f87e">Open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> oflag, mode_t mode=0,</div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classXrdPosixCallBack.html">XrdPosixCallBack</a> *cbP=0);</div> <div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div> <div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">static</span> DIR* <a class="code" href="classXrdPosixXrootd.html#a50859bcecf496d869a9ef5989bae1b24">Opendir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div> <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div> <div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#aa4c43b5ec52782e91e892630b9523721">Pread</a>(<span class="keywordtype">int</span> fildes, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> nbyte, off_t offset);</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">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#abe5cf2a50ab1053ef0108297d4aedc1d">Read</a>(<span class="keywordtype">int</span> fildes, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> nbyte);</div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#a803eea52af25c16c48e7b3a712ebf4d5">Readv</a>(<span class="keywordtype">int</span> fildes, <span class="keyword">const</span> <span class="keyword">struct</span> iovec *iov, <span class="keywordtype">int</span> iovcnt);</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> <span class="keyword">static</span> <span class="keyword">struct </span>dirent* <a class="code" href="classXrdPosixXrootd.html#aa964d55b8791c52543db7229ff693354">Readdir</a> (DIR *dirp);</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">static</span> <span class="keyword">struct </span>dirent64* <a class="code" href="classXrdPosixXrootd.html#ad5c8be80f034b9e766e881c36f613de2">Readdir64</a>(DIR *dirp);</div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a7d2f98489181a075bace680e1b3a64b7">Readdir_r</a> (DIR *dirp, <span class="keyword">struct</span> dirent *entry, <span class="keyword">struct</span> dirent **result);</div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a388d7b68870297883477556302bb1d37">Readdir64_r</a>(DIR *dirp, <span class="keyword">struct</span> dirent64 *entry, <span class="keyword">struct</span> dirent64 **result);</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#ae1a32591fe2ba2eed46782e92f1798d9">Rename</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *oldpath, <span class="keyword">const</span> <span class="keywordtype">char</span> *newpath);</div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#a151e7d9e7463db514c7f0cfdf9bdbd9e">Rewinddir</a>(DIR *dirp);</div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div> <div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a31b6568f041d5c7b9306cc20d9216b6f">Rmdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div> <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div> <div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#afa4ff524c633599587a1b5e7274fade7">Seekdir</a>(DIR *dirp, <span class="keywordtype">long</span> loc);</div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> <div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a8b00135c3b3c3297a1bad75e6e4584fe">Stat</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">struct</span> stat *buf);</div> <div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div> <div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a5f809f99d2b487cd20c7c233fb840d4c">Statfs</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">struct</span> statfs *buf);</div> <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> <div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a20e9bd6e68cdbbabf76a2199e573b537">Statvfs</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">struct</span> statvfs *buf);</div> <div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#a7f101d7f5be0fdc5338b81a6b20bc7ff">Pwrite</a>(<span class="keywordtype">int</span> fildes, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> nbyte, off_t offset);</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div> <div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">static</span> <span class="keywordtype">long</span> <a class="code" href="classXrdPosixXrootd.html#aad7a185ac7e9b2bac8b98785da051fb5">Telldir</a>(DIR *dirp);</div> <div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div> <div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#ae1e3b392f1a4bd7df5f13464e684d603">Truncate</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, off_t offset);</div> <div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div> <div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#aa71f7cbdda67146fdfe28a53730394cf">Unlink</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div> <div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#a05bedd6a974ad9fe61330746962fc05b">Write</a>(<span class="keywordtype">int</span> fildes, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> nbyte);</div> <div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div> <div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#a05bedd6a974ad9fe61330746962fc05b">Write</a>(<span class="keywordtype">int</span> fildes, <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> nbyte, off_t offset);</div> <div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div> <div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">static</span> ssize_t <a class="code" href="classXrdPosixXrootd.html#a69862de4eff4d7c2b01908f6d240642b">Writev</a>(<span class="keywordtype">int</span> fildes, <span class="keyword">const</span> <span class="keyword">struct</span> iovec *iov, <span class="keywordtype">int</span> iovcnt);</div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div> <div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Some non POSIX methods</span></div> <div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">//</span></div> <div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a42655f411f8accc305787f643981af95">Access</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keywordtype">int</span> amode);</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div> <div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a35293f1a28dd2aff025c9e37a95a3f46">endPoint</a>(<span class="keywordtype">int</span> FD, <span class="keywordtype">char</span> *Buff, <span class="keywordtype">int</span> Blen);</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">static</span> <span class="keywordtype">bool</span> <a class="code" href="classXrdPosixXrootd.html#a84a6038b23cd2f23e8088cd60f69057d">isXrootdDir</a>(DIR *dirp);</div> <div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div> <div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#aae46c507f2fedbf4a94608ab072734e4">mapError</a>(<span class="keywordtype">int</span> rc);</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">static</span></div> <div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a6e586152b787be149fceb344a8b74c3f"> 137</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classXrdPosixXrootd.html#a6e586152b787be149fceb344a8b74c3f">myFD</a>(<span class="keywordtype">int</span> fd) {<span class="keywordflow">return</span> fd >= <a class="code" href="classXrdPosixXrootd.html#a3a0c9221e1c4f7eb06206c4a178d246d">baseFD</a> && fd <= (<a class="code" href="classXrdPosixXrootd.html#a98d72bbf4ba17ec1ca81bfe34c092e62">highFD</a>+<a class="code" href="classXrdPosixXrootd.html#a3a0c9221e1c4f7eb06206c4a178d246d">baseFD</a>)</div> <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  && <a class="code" href="classXrdPosixXrootd.html#ad2b825e6c396408be33dd01bedb7421a">myFiles</a> && <a class="code" href="classXrdPosixXrootd.html#ad2b825e6c396408be33dd01bedb7421a">myFiles</a>[fd-<a class="code" href="classXrdPosixXrootd.html#a3a0c9221e1c4f7eb06206c4a178d246d">baseFD</a>];</div> <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div> <div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div> <div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#a5cccd22c529bf3fe64afe43f7c4a5dc8">OpenCB</a>(XrdPosixFile *fp, <span class="keywordtype">void</span> *cbArg, <span class="keywordtype">int</span> res);</div> <div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div> <div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a64e9d15b3cb794e8d1e1c4a21a863f62">QueryChksum</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, time_t &, <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>);</div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">static</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <a class="code" href="classXrdPosixXrootd.html#abb5fe415b379ed5f04cda8a22af12961">QueryOpaque</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keywordtype">char</span>*, <span class="keywordtype">int</span>);</div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#a92cacc454b88edfb79decf8176fc907c">setDebug</a>(<span class="keywordtype">int</span> val);</div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div> <div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#ae5e3c165922c1b071e7609ff7160b45a">setEnv</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *var, <span class="keyword">const</span> <span class="keywordtype">char</span> *val);</div> <div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#ae5e3c165922c1b071e7609ff7160b45a">setEnv</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *var, <span class="keywordtype">long</span> val);</div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#a6493eeb90a542edf97b2c6e1c822c841">setCache</a>(<a class="code" href="classXrdOucCache.html">XrdOucCache</a> *cP);</div> <div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div> <div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a35fc22d824823357baa46be469dd6e56"> 155</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a35fc22d824823357baa46be469dd6e56">Debug</a>;</div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div> <div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="comment">/* There must be one instance of this object per executable image. Typically,</span></div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"> this object is declared in main() or at file level. This is necessary to</span></div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment"> properly do one-time initialization of the static members. When declaring</span></div> <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"> this object, you can pass the following information:</span></div> <div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment"> maxfd - maximum number of simultaneous files to support (i.e. fdlimit).</span></div> <div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment"> The value returned by getrlimit() over-rides the passed value</span></div> <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment"> unless maxfd is negative. When negative, abs(maxfd) becomes the</span></div> <div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"> absolute maximum and shadow file descriptors are not used.</span></div> <div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment"> maxdir - maximum number of open directories that can be supported. This</span></div> <div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment"> is independent of maxfd.</span></div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment"> maxthr - maximum number of threads to use for the callback function.</span></div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">*/</span></div> <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classXrdPosixXrootd.html#a2b22988aed440861b0d5634426611edf">XrdPosixXrootd</a>(<span class="keywordtype">int</span> maxfd=255, <span class="keywordtype">int</span> maxdir=255, <span class="keywordtype">int</span> maxthr=255);</div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classXrdPosixXrootd.html#a15302da8ddfd704caf1574dc104e1f87">~XrdPosixXrootd</a>();</div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div> <div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#ac0d36ebd25d29017d33744176c96218d">initEnv</a>();</div> <div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#ac0d36ebd25d29017d33744176c96218d">initEnv</a>(<span class="keywordtype">char</span> *eData);</div> <div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#ac0d36ebd25d29017d33744176c96218d">initEnv</a>(<a class="code" href="classXrdOucEnv.html">XrdOucEnv</a> &, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">long</span> <span class="keywordtype">long</span> &);</div> <div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#ac8b5376470493986f81ac0c479fd343b">Fault</a>(XrdPosixFile *fp, <span class="keywordtype">int</span> complete=1);</div> <div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">static</span> XrdPosixFile *<a class="code" href="classXrdPosixXrootd.html#a66c0e8f3ed853f5fd0dcdf40f8948d17">findFP</a>(<span class="keywordtype">int</span> fildes, <span class="keywordtype">int</span> glk=0);</div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">static</span> XrdPosixDir *<a class="code" href="classXrdPosixXrootd.html#af2d50099670e07a5b7ee09b5b82c9138">findDIR</a>(DIR *dirp, <span class="keywordtype">int</span> glk=0);</div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#a808cf3a2261003e79b6eb94b4a62fb5b">initStat</a>(<span class="keyword">struct</span> stat *buf);</div> <div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classXrdPosixXrootd.html#a362ce1b7ca3e7a3c059f49b6fbfc0c0f">initXdev</a>(dev_t &st_dev, dev_t &st_rdev);</div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#adce593ebaea0335616008bcb9f4b977d">mapFlags</a>(<span class="keywordtype">int</span> flags);</div> <div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a862bd442ef47c46679fefd42ba7791ba">mapMode</a>(mode_t Mode);</div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div> <div class="line"><a name="l00185"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a3d30b4d40f66d738aa105662709cc0fb"> 185</a></span> <span class="keyword">static</span> <a class="code" href="classXrdSysMutex.html">XrdSysMutex</a> <a class="code" href="classXrdPosixXrootd.html#a3d30b4d40f66d738aa105662709cc0fb">myMutex</a>;</div> <div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#ad2b825e6c396408be33dd01bedb7421a"> 186</a></span> <span class="keyword">static</span> XrdPosixFile **<a class="code" href="classXrdPosixXrootd.html#ad2b825e6c396408be33dd01bedb7421a">myFiles</a>;</div> <div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a97317ea878ba0c311492c94a3d61938d"> 187</a></span> <span class="keyword">static</span> XrdPosixDir **<a class="code" href="classXrdPosixXrootd.html#a97317ea878ba0c311492c94a3d61938d">myDirs</a>;</div> <div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a96f421b51cc7fa79fb21e2aeafadb01b"> 188</a></span> <span class="keyword">static</span> <a class="code" href="classXrdOucCache.html">XrdOucCache</a> *<a class="code" href="classXrdPosixXrootd.html#a96f421b51cc7fa79fb21e2aeafadb01b">myCache</a>;</div> <div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#ac82331b215f9e47aabe02b388ac2b4ae"> 189</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#ac82331b215f9e47aabe02b388ac2b4ae">lastFD</a>;</div> <div class="line"><a name="l00190"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a98d72bbf4ba17ec1ca81bfe34c092e62"> 190</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a98d72bbf4ba17ec1ca81bfe34c092e62">highFD</a>;</div> <div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a3a0c9221e1c4f7eb06206c4a178d246d"> 191</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a3a0c9221e1c4f7eb06206c4a178d246d">baseFD</a>;</div> <div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a37d27284c499db18a9e8194151174f9e"> 192</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a37d27284c499db18a9e8194151174f9e">freeFD</a>;</div> <div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a219e4edab4a9b66e67c8845a25e8e668"> 193</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a219e4edab4a9b66e67c8845a25e8e668">lastDir</a>;</div> <div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a22245cc76691f679ca1f46ca48b9a82e"> 194</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a22245cc76691f679ca1f46ca48b9a82e">highDir</a>;</div> <div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a4ff61b8a1e9dad62a60c6c1b46387b73"> 195</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a4ff61b8a1e9dad62a60c6c1b46387b73">devNull</a>;</div> <div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#aad14147ef594a265ebfc2c6d662de7db"> 196</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#aad14147ef594a265ebfc2c6d662de7db">pllOpen</a>;</div> <div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a0e8cc1fa20ad93d0f758fe2684904f9f"> 197</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a0e8cc1fa20ad93d0f758fe2684904f9f">maxThreads</a>;</div> <div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="classXrdPosixXrootd.html#a4e42b4edb778b5868888e43c4c418432"> 198</a></span> <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="classXrdPosixXrootd.html#a4e42b4edb778b5868888e43c4c418432">initDone</a>;</div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span> };</div> <div class="line"><a name="l00200"></a><span class="lineno"> 200</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>