1 #ifndef __XRDFILECACHE_CACHE_HH__
2 #define __XRDFILECACHE_CACHE_HH__
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
virtual XrdOucCacheIO * Attach(XrdOucCacheIO *, int Options=0)
Obtain a new IO object that fronts existing XrdOucCacheIO.
WriteQ()
Definition: XrdFileCache.hh:112
WriteTask(Prefetch *p, int ri, size_t s)
Definition: XrdFileCache.hh:107
virtual int isAttached()
Number of cache-io objects atteched through this cache.
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
void getFilePathFromURL(const char *url, std::string &res) const
Transfor URL to path on local disk.
Definition: XrdFileCache.hh:30
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
static void ProcessWriteTasks()
Separate task which writes blocks from ram to disk.
void Detach(XrdOucCacheIO *)
Decrease attached count. Called from IO::Detach().
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
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
static void RemoveWriteQEntriesFor(Prefetch *p)
Remove blocks from write queue which belong to given prefetch. This method is used at the time of Pre...
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 const char * Path()=0
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
Cache(XrdOucCacheStats &)
Constructor.
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
static bool HaveFreeWritingSlots()
Check write queue size is not over limit.
virtual XrdOucCacheIO * Base()
Original data source.
Definition: XrdFileCache.hh:134
static void AddWriteTask(Prefetch *p, int ramBlockidx, size_t size, bool fromRead)
Add downloaded block in write queue.
Definition: XrdOucCache.hh:93
virtual long long FSize()=0
Prefetch * prefetch
object queued for writing
Definition: XrdFileCache.hh:104
Definition: XrdOucCache.hh:351
XrdCl::Log * clLog() const
Definition: XrdFileCache.hh:152
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
XrdCl::Log * clLog() const
Short log alias.
Definition: XrdFileCache.hh:96