1 #ifndef __XRDFILECACHE_CACHE_HH__ 2 #define __XRDFILECACHE_CACHE_HH__ 58 virtual int isAttached();
70 static void AddWriteTask(
Prefetch* p,
int ramBlockidx,
size_t size,
bool fromRead);
75 static bool HaveFreeWritingSlots();
81 static void RemoveWriteQEntriesFor(
Prefetch *p);
86 static void ProcessWriteTasks();
93 void getFilePathFromURL(
const char* url, std::string& res)
const;
131 m_io(io), m_statsGlobal(stats), m_cache(cache) {}
137 virtual long long FSize() {
return m_io.FSize(); }
140 virtual const char *
Path() {
return m_io.Path(); }
142 virtual int Sync() {
return 0; }
144 virtual int Trunc(
long long Offset) { errno = ENOTSUP;
return -1; }
146 virtual int Write(
char *Buffer,
long long Offset,
int Length)
147 { errno = ENOTSUP;
return -1; }
IO(XrdOucCacheIO &io, XrdOucCacheStats &stats, Cache &cache)
Definition: XrdFileCache.hh:130
Definition: XrdFileCache.hh:110
WriteQ()
Definition: XrdFileCache.hh:112
WriteTask(Prefetch *p, int ri, size_t s)
Definition: XrdFileCache.hh:107
static WriteQ s_writeQ
Definition: XrdFileCache.hh:118
Downloads original file into multiple files, chunked into blocks. Only blocks that are asked for are ...
Definition: XrdFileCacheIOFileBlock.hh:39
virtual int Trunc(long long Offset)
Definition: XrdFileCache.hh:144
Definition: XrdFileCache.hh:30
XrdCl::Log * clLog() const
Definition: XrdFileCache.hh:152
Definition: XrdOucCache.hh:158
XrdSysMutex m_io_mutex
central lock for this class
Definition: XrdFileCache.hh:98
XrdOucCacheStats & m_stats
global cache usage statistics
Definition: XrdFileCache.hh:100
std::list< WriteTask > queue
container
Definition: XrdFileCache.hh:115
Downloads data into a file on local disk and handles IO read requests.
Definition: XrdFileCachePrefetch.hh:42
XrdCl::Log * clLog() const
Short log alias.
Definition: XrdFileCache.hh:96
static Log * GetLog()
Get default log.
Definition: XrdSysPthread.hh:140
size_t size
cache size of a container
Definition: XrdFileCache.hh:114
Base cache-io class that implements XrdOucCacheIO abstract methods.
Definition: XrdFileCache.hh:125
virtual void StartPrefetch()
Definition: XrdFileCache.hh:149
Definition: XrdOucCache.hh:313
virtual XrdOucCache * Create(XrdOucCache::Parms &, XrdOucCacheIO::aprParms *)
Unused abstract method. Plugin instantiation role is given to the Factory class.
Definition: XrdFileCache.hh:64
virtual int Sync()
Definition: XrdFileCache.hh:142
Definition: XrdSysPthread.hh:53
virtual int Write(char *Buffer, long long Offset, int Length)
Definition: XrdFileCache.hh:146
Definition: XrdClEnv.hh:28
Downloads original file into a single file on local disk. Handles read requests as they come along...
Definition: XrdFileCacheIOEntireFile.hh:39
Definition: XrdOucCache.hh:278
virtual long long FSize()
Original data source URL.
Definition: XrdFileCache.hh:137
unsigned int m_attached
number of attached IO objects
Definition: XrdFileCache.hh:99
Definition: XrdFileCache.hh:102
XrdOucCacheIO & m_io
original data source
Definition: XrdFileCache.hh:154
XrdSysCondVar condVar
write list condVar
Definition: XrdFileCache.hh:113
virtual XrdOucCacheIO * Base()
Original data source.
Definition: XrdFileCache.hh:134
Definition: XrdOucCache.hh:93
Prefetch * prefetch
object queued for writing
Definition: XrdFileCache.hh:104
Definition: XrdOucCache.hh:351
Attaches/creates and detaches/deletes cache-io objects for disk based cache.
Definition: XrdFileCache.hh:39
XrdOucCacheStats & m_statsGlobal
reference to Cache statistics
Definition: XrdFileCache.hh:155
virtual const char * Path()
Original data source URL.
Definition: XrdFileCache.hh:140
size_t size
write size – block size except in case this is the end file block
Definition: XrdFileCache.hh:106
int ramBlockIdx
in memory cache index
Definition: XrdFileCache.hh:105
Cache & m_cache
reference to Cache needed in detach
Definition: XrdFileCache.hh:156