00001 #ifndef __XRDRMC_HH__ 00002 #define __XRDRMC_HH__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d R m c . h h */ 00006 /* */ 00007 /* (c) 2019 by the Board of Trustees of the Leland Stanford, Jr., University */ 00008 /* All Rights Reserved */ 00009 /* Produced by Andrew Hanushevsky for Stanford University under contract */ 00010 /* DE-AC02-76-SFO0515 with the Department of Energy */ 00011 /* */ 00012 /* This file is part of the XRootD software suite. */ 00013 /* */ 00014 /* XRootD is free software: you can redistribute it and/or modify it under */ 00015 /* the terms of the GNU Lesser General Public License as published by the */ 00016 /* Free Software Foundation, either version 3 of the License, or (at your */ 00017 /* option) any later version. */ 00018 /* */ 00019 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */ 00020 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ 00021 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */ 00022 /* License for more details. */ 00023 /* */ 00024 /* You should have received a copy of the GNU Lesser General Public License */ 00025 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */ 00026 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */ 00027 /* */ 00028 /* The copyright holder's institutional names and contributor's names may not */ 00029 /* be used to endorse or promote products derived from this software without */ 00030 /* specific prior written permission of the institution or contributor. */ 00031 /******************************************************************************/ 00032 00033 #include "XrdOuc/XrdOucCache.hh" 00034 00090 class XrdRmc 00091 { 00092 public: 00093 00094 //----------------------------------------------------------------------------- 00096 //----------------------------------------------------------------------------- 00097 00098 struct Parms 00099 {long long CacheSize; 00100 int PageSize; 00101 int Max2Cache; 00102 int MaxFiles; 00103 int Options; 00104 short minPages; 00105 short Reserve1; 00106 int Reserve2; 00107 00108 Parms() : CacheSize(104857600), PageSize(32768), 00109 Max2Cache(0), MaxFiles(0), Options(0), 00110 minPages(0), Reserve1(0), Reserve2(0) {} 00111 }; 00112 00113 // Valid option values in Parms::Options 00114 // 00115 static const int 00116 isServer = 0x0010; 00117 // Appropriate internal optimizations will be used. 00118 static const int 00119 isStructured = 0x0020; // Optimize for structured files (e.g. root). 00120 00121 static const int 00122 canPreRead = 0x0040; 00123 00124 static const int 00125 logStats = 0x0080; 00126 00127 static const int 00128 Serialized = 0x0004; 00129 00130 static const int 00131 ioMTSafe = 0x0008; 00132 00133 static const int 00134 Debug = 0x0003; 00135 00136 //----------------------------------------------------------------------------- 00144 //----------------------------------------------------------------------------- 00145 00146 static XrdOucCache *Create(Parms &Params, XrdOucCacheIO::aprParms *aprP=0); 00147 00148 XrdRmc() {} 00149 ~XrdRmc() {} 00150 }; 00151 #endif