XrdFileCache::Info Class Reference

Status of cached file. Can be read from and written into a binary file. More...

#include <XrdFileCacheInfo.hh>

Collaboration diagram for XrdFileCache::Info:
Collaboration graph
[legend]

List of all members.

Classes

struct  AStat
struct  Store

Public Member Functions

 Info (XrdSysTrace *trace, bool prefetchBuffer=false)
 Constructor.
 ~Info ()
 Destructor.
void SetBitWritten (int i)
 Mark block as written to disk.
bool TestBitWritten (int i) const
 Test if block at the given index is written to disk.
bool TestBitPrefetch (int i) const
 Test if block at the given index has been prefetched.
void SetBitPrefetch (int i)
 Mark block as obtained through prefetch.
void SetBitSynced (int i)
 Mark block as synced to disk.
void SetAllBitsSynced ()
 Mark all blocks as synced to disk.
void SetBufferSize (long long)
void SetFileSize (long long)
void ResizeBits (int n)
 Reserve buffer for fileSize/bufferSize bytes.
bool Read (XrdOssDF *fp, const std::string &fname="<unknown>")
 Rea load content from cinfo file into this object.
bool Write (XrdOssDF *fp, const std::string &fname="<unknown>")
void DisableDownloadStatus ()
 Disable allocating, writing, and reading of downlaod status.
void ResetAllAccessStats ()
 Reset IO Stats.
void WriteIOStatAttach ()
 Write open time in the last entry of access statistics.
void WriteIOStat (Stats &s)
 Write bytes missed, hits, and disk.
void WriteIOStatDetach (Stats &s)
 Write close time together with bytes missed, hits, and disk.
void WriteIOStatSingle (long long bytes_disk)
 Write single open/close time for given bytes read from disk.
void WriteIOStatSingle (long long bytes_disk, time_t att, time_t dtc)
 Write open/close with given time and bytes read from disk.
bool IsAnythingEmptyInRng (int firstIdx, int lastIdx) const
 Check download status in given block range.
int GetSizeInBytes () const
 Get size of download-state bit-vector in bytes.
int GetSizeInBits () const
 Get number of blocks represented in download-state bit-vector.
long long GetFileSize () const
 Get file size.
bool GetLatestDetachTime (time_t &t) const
 Get latest detach time.
long long GetBufferSize () const
 Get prefetch buffer size.
bool IsComplete () const
 Get complete status.
int GetNDownloadedBlocks () const
 Get number of downloaded blocks.
long long GetNDownloadedBytes () const
 Get number of downloaded bytes.
int GetLastDownloadedBlock () const
 Get number of the last downloaded block.
long long GetExpectedDataFileSize () const
 Get expected data file size.
void UpdateDownloadCompleteStatus ()
 Update complete status.
size_t GetAccessCnt ()
 Get number of accesses.
int GetVersion ()
 Get version.
const StoreRefStoredData () const
 Get stored data.
void GetCksum (unsigned char *buff, char *digest)
 Get md5 cksum.
XrdSysTraceGetTrace () const

Static Public Member Functions

static size_t GetMaxNumAccess ()

Static Public Attributes

static const char * m_infoExtension
static const char * m_traceID
static const int m_defaultVersion
static const size_t m_maxNumAccess

Protected Attributes

XrdSysTracem_trace
Store m_store
bool m_hasPrefetchBuffer
 constains current prefetch score
unsigned char * m_buff_written
 download state vector
unsigned char * m_buff_prefetch
 prefetch statistics
int m_sizeInBits
 cached
bool m_complete
 cached

Private Member Functions

unsigned char cfiBIT (int n) const
bool ReadV1 (XrdOssDF *fp, const std::string &fname)

Private Attributes

XrdCksCalcm_cksCalc

Detailed Description

Status of cached file. Can be read from and written into a binary file.


Constructor & Destructor Documentation

XrdFileCache::Info::Info ( XrdSysTrace trace,
bool  prefetchBuffer = false 
)

Constructor.

XrdFileCache::Info::~Info (  ) 

Destructor.


Member Function Documentation

unsigned char XrdFileCache::Info::cfiBIT ( int  n  )  const [inline, private]
void XrdFileCache::Info::DisableDownloadStatus (  ) 

Disable allocating, writing, and reading of downlaod status.

size_t XrdFileCache::Info::GetAccessCnt (  )  [inline]

Get number of accesses.

References XrdFileCache::Info::Store::m_accessCnt, and m_store.

long long XrdFileCache::Info::GetBufferSize (  )  const [inline]

Get prefetch buffer size.

References XrdFileCache::Info::Store::m_bufferSize, and m_store.

void XrdFileCache::Info::GetCksum ( unsigned char *  buff,
char *  digest 
)

Get md5 cksum.

long long XrdFileCache::Info::GetExpectedDataFileSize (  )  const [inline]
long long XrdFileCache::Info::GetFileSize (  )  const [inline]

Get file size.

References XrdFileCache::Info::Store::m_fileSize, and m_store.

int XrdFileCache::Info::GetLastDownloadedBlock (  )  const [inline]

Get number of the last downloaded block.

References m_sizeInBits, and TestBitWritten().

Referenced by GetExpectedDataFileSize().

bool XrdFileCache::Info::GetLatestDetachTime ( time_t &  t  )  const

Get latest detach time.

static size_t XrdFileCache::Info::GetMaxNumAccess (  )  [inline, static]

References m_maxNumAccess.

int XrdFileCache::Info::GetNDownloadedBlocks (  )  const [inline]

Get number of downloaded blocks.

References m_sizeInBits, and TestBitWritten().

Referenced by GetNDownloadedBytes().

long long XrdFileCache::Info::GetNDownloadedBytes (  )  const [inline]

Get number of downloaded bytes.

References GetNDownloadedBlocks(), XrdFileCache::Info::Store::m_bufferSize, and m_store.

int XrdFileCache::Info::GetSizeInBits (  )  const [inline]

Get number of blocks represented in download-state bit-vector.

References m_sizeInBits.

int XrdFileCache::Info::GetSizeInBytes (  )  const [inline]

Get size of download-state bit-vector in bytes.

References m_sizeInBits.

Referenced by SetBitPrefetch(), SetBitSynced(), SetBitWritten(), TestBitPrefetch(), and TestBitWritten().

XrdSysTrace* XrdFileCache::Info::GetTrace (  )  const [inline]

References m_trace.

int XrdFileCache::Info::GetVersion (  )  [inline]

Get version.

References m_store, and XrdFileCache::Info::Store::m_version.

bool XrdFileCache::Info::IsAnythingEmptyInRng ( int  firstIdx,
int  lastIdx 
) const [inline]

Check download status in given block range.

References TestBitWritten().

Referenced by UpdateDownloadCompleteStatus().

bool XrdFileCache::Info::IsComplete (  )  const [inline]

Get complete status.

References m_complete.

bool XrdFileCache::Info::Read ( XrdOssDF fp,
const std::string &  fname = "<unknown>" 
)

Rea load content from cinfo file into this object.

Parameters:
fp file handle
fname optional file name for trace output
Returns:
true on success
bool XrdFileCache::Info::ReadV1 ( XrdOssDF fp,
const std::string &  fname 
) [private]
const Store& XrdFileCache::Info::RefStoredData (  )  const [inline]

Get stored data.

References m_store.

void XrdFileCache::Info::ResetAllAccessStats (  ) 

Reset IO Stats.

void XrdFileCache::Info::ResizeBits ( int  n  ) 

Reserve buffer for fileSize/bufferSize bytes.

Parameters:
n number of file blocks
void XrdFileCache::Info::SetAllBitsSynced (  ) 

Mark all blocks as synced to disk.

void XrdFileCache::Info::SetBitPrefetch ( int  i  )  [inline]

Mark block as obtained through prefetch.

References cfiBIT(), GetSizeInBytes(), and m_buff_prefetch.

void XrdFileCache::Info::SetBitSynced ( int  i  )  [inline]

Mark block as synced to disk.

References cfiBIT(), GetSizeInBytes(), XrdFileCache::Info::Store::m_buff_synced, and m_store.

void XrdFileCache::Info::SetBitWritten ( int  i  )  [inline]

Mark block as written to disk.

References cfiBIT(), GetSizeInBytes(), and m_buff_written.

void XrdFileCache::Info::SetBufferSize ( long  long  ) 
void XrdFileCache::Info::SetFileSize ( long  long  ) 
bool XrdFileCache::Info::TestBitPrefetch ( int  i  )  const [inline]

Test if block at the given index has been prefetched.

References cfiBIT(), GetSizeInBytes(), and m_buff_prefetch.

bool XrdFileCache::Info::TestBitWritten ( int  i  )  const [inline]

Test if block at the given index is written to disk.

References cfiBIT(), GetSizeInBytes(), and m_buff_written.

Referenced by GetLastDownloadedBlock(), GetNDownloadedBlocks(), and IsAnythingEmptyInRng().

void XrdFileCache::Info::UpdateDownloadCompleteStatus (  )  [inline]

Update complete status.

References IsAnythingEmptyInRng(), m_complete, and m_sizeInBits.

bool XrdFileCache::Info::Write ( XrdOssDF fp,
const std::string &  fname = "<unknown>" 
)

Write number of blocks and read buffer size

Returns:
true on success
void XrdFileCache::Info::WriteIOStat ( Stats s  ) 

Write bytes missed, hits, and disk.

void XrdFileCache::Info::WriteIOStatAttach (  ) 

Write open time in the last entry of access statistics.

void XrdFileCache::Info::WriteIOStatDetach ( Stats s  ) 

Write close time together with bytes missed, hits, and disk.

void XrdFileCache::Info::WriteIOStatSingle ( long long  bytes_disk,
time_t  att,
time_t  dtc 
)

Write open/close with given time and bytes read from disk.

void XrdFileCache::Info::WriteIOStatSingle ( long long  bytes_disk  ) 

Write single open/close time for given bytes read from disk.


Member Data Documentation

unsigned char* XrdFileCache::Info::m_buff_prefetch [protected]

prefetch statistics

Referenced by SetBitPrefetch(), and TestBitPrefetch().

unsigned char* XrdFileCache::Info::m_buff_written [protected]

download state vector

Referenced by SetBitWritten(), and TestBitWritten().

cached

Referenced by IsComplete(), and UpdateDownloadCompleteStatus().

constains current prefetch score

const size_t XrdFileCache::Info::m_maxNumAccess [static]

Referenced by GetMaxNumAccess().

Referenced by GetTrace().

const char* XrdFileCache::Info::m_traceID [static]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 2 Oct 2019 for xrootd by  doxygen 1.6.1