XrdFileCacheIOEntireFile.hh

Go to the documentation of this file.
00001 #ifndef __XRDFILECACHE_IO_ENTIRE_FILE_HH__
00002 #define __XRDFILECACHE_IO_ENTIRE_FILE_HH__
00003 //----------------------------------------------------------------------------------
00004 // Copyright (c) 2014 by Board of Trustees of the Leland Stanford, Jr., University
00005 // Author: Alja Mrak-Tadel, Matevz Tadel, Brian Bockelman
00006 //----------------------------------------------------------------------------------
00007 // XRootD is free software: you can redistribute it and/or modify
00008 // it under the terms of the GNU Lesser General Public License as published by
00009 // the Free Software Foundation, either version 3 of the License, or
00010 // (at your option) any later version.
00011 //
00012 // XRootD is distributed in the hope that it will be useful,
00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 // GNU General Public License for more details.
00016 //
00017 // You should have received a copy of the GNU Lesser General Public License
00018 // along with XRootD.  If not, see <http://www.gnu.org/licenses/>.
00019 //----------------------------------------------------------------------------------
00020 
00021 #include <string>
00022 
00023 #include "XrdSys/XrdSysPthread.hh"
00024 #include "XrdFileCache.hh"
00025 #include "XrdFileCacheStats.hh"
00026 #include "XrdFileCachePrefetch.hh"
00027 
00028 class XrdSysError;
00029 class XrdOssDF;
00030 class XfcStats;
00031 class XrdOucIOVec;
00032 
00033 namespace XrdFileCache
00034 {
00035    //----------------------------------------------------------------------------
00038    //----------------------------------------------------------------------------
00039    class IOEntireFile : public IO
00040    {
00041       public:
00042          //------------------------------------------------------------------------
00044          //------------------------------------------------------------------------
00045          IOEntireFile(XrdOucCacheIO &io, XrdOucCacheStats &stats, Cache &cache);
00046 
00047          //------------------------------------------------------------------------
00049          //------------------------------------------------------------------------
00050          ~IOEntireFile();
00051 
00052          //---------------------------------------------------------------------
00060          //---------------------------------------------------------------------
00061          virtual int Read(char *Buffer, long long Offset, int Length);
00062 
00063          //---------------------------------------------------------------------
00070          //---------------------------------------------------------------------
00071          virtual int ReadV(const XrdOucIOVec *readV, int n);
00072 
00073          //---------------------------------------------------------------------
00077          //---------------------------------------------------------------------
00078          virtual XrdOucCacheIO* Detach();
00079 
00082          virtual bool ioActive();
00083 
00084    protected:
00086       virtual void StartPrefetch();
00087 
00088       private:
00089          Prefetch* m_prefetch;
00090    };
00091 
00092 }
00093 #endif

Generated on 12 Dec 2014 for xrootd by  doxygen 1.4.7