1#ifndef __XRDPFC_INFO_HH__
2#define __XRDPFC_INFO_HH__
308#ifdef XRDPFC_CKSUM_TEST
309 static void TestCksumStuff();
336 inline unsigned char cfiBIT(
int n)
const {
return 1 << n; }
352 const int off = i - cn*8;
361 const int off = i - cn*8;
376 const int off = i - cn*8;
387 const int off = i - cn*8;
396 const int off = i - cn*8;
461 for (
int i = firstIdx; i < lastIdx; ++i)
Definition XrdCksCalc.hh:40
Status of cached file. Can be read from and written into a binary file.
Definition XrdPfcInfo.hh:45
bool ReadV2(XrdOssDF *fp, off_t off, const char *dname, const char *fname)
void SetBitPrefetch(int i)
Mark block as obtained through prefetch.
Definition XrdPfcInfo.hh:369
void UpdateDownloadCompleteStatus()
Update complete status.
Definition XrdPfcInfo.hh:467
bool IsCkSumAny() const
Definition XrdPfcInfo.hh:295
const std::vector< AStat > & RefAStats() const
Definition XrdPfcInfo.hh:276
void SetBitSynced(int i)
Mark block as synced to disk.
Definition XrdPfcInfo.hh:391
Info(XrdSysTrace *trace, bool prefetchBuffer=false)
Constructor.
void SetAllBitsSynced()
Mark all blocks as synced to disk.
int GetBitvecSizeInBytes() const
Get size of download-state bit-vector in bytes.
Definition XrdPfcInfo.hh:433
time_t GetNoCkSumTimeForUVKeep() const
Definition XrdPfcInfo.hh:305
unsigned char * m_buff_prefetch
prefetch statistics
Definition XrdPfcInfo.hh:326
void CompactifyAccessRecords()
Compactify access records to the configured maximum.
uint32_t CalcCksumSyncedAndAStats()
CkSumCheck_e GetCkSumState() const
Definition XrdPfcInfo.hh:290
int m_version
Definition XrdPfcInfo.hh:329
void WriteIOStatDetach(Stats &s)
Write close time together with bytes missed, hits, and disk.
static const int s_defaultVersion
Definition XrdPfcInfo.hh:316
void DowngradeCkSumState(CkSumCheck_e css_ref)
Definition XrdPfcInfo.hh:299
void WriteIOStat(Stats &s)
Write bytes missed, hits, and disk.
long long GetNDownloadedBytes() const
Get number of downloaded bytes.
Definition XrdPfcInfo.hh:411
XrdCksCalc * m_cksCalcMd5
Definition XrdPfcInfo.hh:342
int GetLastDownloadedBlock() const
Get number of the last downloaded block.
Definition XrdPfcInfo.hh:416
XrdSysTrace * GetTrace() const
Definition XrdPfcInfo.hh:318
const Store & RefStoredData() const
Get stored data.
Definition XrdPfcInfo.hh:275
time_t GetCreationTime() const
Get file size.
Definition XrdPfcInfo.hh:281
unsigned char * m_buff_written
download state vector
Definition XrdPfcInfo.hh:325
bool IsCkSumNet() const
Definition XrdPfcInfo.hh:294
unsigned char * m_buff_synced
disk written state vector
Definition XrdPfcInfo.hh:324
bool m_complete
cached; if false, set to true when missingBlocks hit zero
Definition XrdPfcInfo.hh:332
bool TestBitPrefetch(int i) const
Test if block at the given index has been prefetched.
Definition XrdPfcInfo.hh:380
bool IsComplete() const
Get complete status.
Definition XrdPfcInfo.hh:451
void ResetAllAccessStats()
Reset IO Stats.
bool IsCkSumCache() const
Definition XrdPfcInfo.hh:293
unsigned char cfiBIT(int n) const
Definition XrdPfcInfo.hh:336
void SetBitWritten(int i)
Mark block as written to disk.
Definition XrdPfcInfo.hh:356
time_t GetNoCkSumTime() const
Definition XrdPfcInfo.hh:304
int m_missingBlocks
cached, updated in SetBitWritten()
Definition XrdPfcInfo.hh:331
long long GetBufferSize() const
Get prefetch buffer size.
Definition XrdPfcInfo.hh:473
long long GetExpectedDataFileSize() const
Get expected data file size.
Definition XrdPfcInfo.hh:424
bool TestBitWritten(int i) const
Test if block at the given index is written to disk.
Definition XrdPfcInfo.hh:347
int m_bitvecSizeInBits
cached
Definition XrdPfcInfo.hh:330
long long GetFileSize() const
Get file size.
Definition XrdPfcInfo.hh:446
XrdSysTrace * m_trace
Definition XrdPfcInfo.hh:321
std::vector< AStat > m_astats
access records
Definition XrdPfcInfo.hh:327
const char * GetCkSumStateAsText() const
static const char * s_infoExtension
Definition XrdPfcInfo.hh:313
void SetBufferSizeFileSizeAndCreationTime(long long bs, long long fs)
Store m_store
Definition XrdPfcInfo.hh:323
bool Write(XrdOssDF *fp, const char *dname, const char *fname=0)
bool GetLatestDetachTime(time_t &t) const
Get latest detach time.
bool ReadV3(XrdOssDF *fp, off_t off, const char *dname, const char *fname)
void SetCkSumState(CkSumCheck_e css)
Definition XrdPfcInfo.hh:298
void ResetNoCkSumTime()
Definition XrdPfcInfo.hh:306
void WriteIOStatSingle(long long bytes_disk)
Write single open/close time for given bytes read from disk.
static const char * m_traceID
Definition XrdPfcInfo.hh:312
const AStat * GetLastAccessStats() const
Get latest access stats.
bool IsCkSumBoth() const
Definition XrdPfcInfo.hh:296
void ResizeBits()
Reserve bit vectors for file_size / buffer_size bytes.
static size_t s_maxNumAccess
Definition XrdPfcInfo.hh:315
int GetVersion()
Get version.
Definition XrdPfcInfo.hh:270
uint32_t CalcCksumStore()
Get cksum, MD5 is for backward compatibility with V2 and V3.
int GetNDownloadedBlocks() const
Get number of downloaded blocks.
Definition XrdPfcInfo.hh:402
size_t GetAccessCnt() const
Get number of accesses.
Definition XrdPfcInfo.hh:265
int CountBlocksNotWrittenInRng(int firstIdx, int lastIdx) const
Check download status in given block range.
Definition XrdPfcInfo.hh:456
void CalcCksumMd5(unsigned char *buff, char *digest)
static const size_t s_infoExtensionLen
Definition XrdPfcInfo.hh:314
void WriteIOStatSingle(long long bytes_disk, time_t att, time_t dtc)
Write open/close with given time and bytes read from disk.
void WriteIOStatAttach()
Write open time in the last entry of access statistics.
int GetNBlocks() const
Get number of blocks represented in download-state bit-vector.
Definition XrdPfcInfo.hh:441
bool m_hasPrefetchBuffer
constains current prefetch score
Definition XrdPfcInfo.hh:333
bool Read(XrdOssDF *fp, const char *dname, const char *fname=0)
Read content of cinfo file into this object.
bool HasNoCkSumTime() const
Definition XrdPfcInfo.hh:303
Statistics of cache utilisation by a File object.
Definition XrdPfcStats.hh:31
Definition XrdSysTrace.hh:49
CkSumCheck_e
Definition XrdPfcTypes.hh:23
@ CSChk_Both
Definition XrdPfcTypes.hh:23
@ CSChk_Net
Definition XrdPfcTypes.hh:23
@ CSChk_Cache
Definition XrdPfcTypes.hh:23
Access statistics.
Definition XrdPfcInfo.hh:61
long long BytesHit
read from cache
Definition XrdPfcInfo.hh:68
void MergeWith(const AStat &a)
long long BytesBypassed
read from remote and dropped
Definition XrdPfcInfo.hh:70
AStat()
Definition XrdPfcInfo.hh:72
int Duration
total duration of all IOs attached
Definition XrdPfcInfo.hh:65
int Reserved
reserved / alignment
Definition XrdPfcInfo.hh:67
int NumIos
number of IO objects attached during this access
Definition XrdPfcInfo.hh:64
time_t DetachTime
close time
Definition XrdPfcInfo.hh:63
long long BytesMissed
read from remote and cached
Definition XrdPfcInfo.hh:69
time_t AttachTime
open time
Definition XrdPfcInfo.hh:62
int NumMerged
number of times the record has been merged
Definition XrdPfcInfo.hh:66
Definition XrdPfcInfo.hh:47
int f_cksum_check
as in enum CkSumCheck_e
Definition XrdPfcInfo.hh:50
unsigned int _raw_
Definition XrdPfcInfo.hh:54
int _free_bits_
Definition XrdPfcInfo.hh:52
Status()
Definition XrdPfcInfo.hh:56
Definition XrdPfcInfo.hh:81
Store()
Definition XrdPfcInfo.hh:90
int m_astatSize
size of AStat vector
Definition XrdPfcInfo.hh:88
Status m_status
status information
Definition XrdPfcInfo.hh:87
long long m_buffer_size
buffer / block size
Definition XrdPfcInfo.hh:82
time_t m_noCkSumTime
time when first non-cksummed block was detected
Definition XrdPfcInfo.hh:85
size_t m_accessCnt
total access count for the file
Definition XrdPfcInfo.hh:86
long long m_file_size
size of file in bytes
Definition XrdPfcInfo.hh:83
time_t m_creationTime
time the info file was created
Definition XrdPfcInfo.hh:84