libzypp 8.13.6
Public Member Functions | Private Member Functions | Private Attributes

zypp::media::MediaBlockList Class Reference

#include <MediaBlockList.h>

List of all members.

Public Member Functions

 MediaBlockList (off_t filesize=off_t(-1))
bool haveBlocks () const
 do we have a blocklist describing the file? set to true when addBlock() is called
size_t addBlock (off_t off, size_t size)
 add a block with offset off and size size to the block list.
MediaBlock getBlock (size_t blkno) const
 return the offset/size of a block with number blkno
size_t numBlocks () const
 return the number of blocks in the blocklist
void setFilesize (off_t newfilesize=off_t(-1))
 set / return the size of the whole file
off_t getFilesize () const
bool haveFilesize () const
void setFileChecksum (std::string ctype, int cl, unsigned char *c)
 set / verify the checksum over the whole file
bool createFileDigest (Digest &digest) const
bool verifyFileDigest (Digest &digest) const
bool haveFileChecksum () const
void setChecksum (size_t blkno, std::string cstype, int csl, unsigned char *cs, size_t cspad=0)
 set / verify the (strong) checksum over a single block
bool checkChecksum (size_t blkno, const unsigned char *buf, size_t bufl) const
bool createDigest (Digest &digest) const
bool verifyDigest (size_t blkno, Digest &digest) const
bool haveChecksum (size_t blkno) const
void setRsum (size_t blkno, int rsl, unsigned int rs, size_t rspad=0)
 set / verify the (weak) rolling checksum over a single block
bool checkRsum (size_t blkno, const unsigned char *buf, size_t bufl) const
unsigned int updateRsum (unsigned int rs, const char *bytes, size_t len) const
bool verifyRsum (size_t blkno, unsigned int rs) const
bool haveRsum (size_t blkno) const
void reuseBlocks (FILE *wfp, std::string filename)
 scan a file for blocks from our blocklist.
std::string asString () const
 return block list as string

Private Member Functions

void writeBlock (size_t blkno, FILE *fp, const unsigned char *buf, size_t bufl, size_t start, std::vector< bool > &found) const
bool checkChecksumRotated (size_t blkno, const unsigned char *buf, size_t bufl, size_t start) const

Private Attributes

off_t filesize
std::string fsumtype
std::vector< unsigned char > fsum
bool haveblocks
std::vector< MediaBlockblocks
std::string chksumtype
int chksumlen
size_t chksumpad
std::vector< unsigned char > chksums
std::string rsumtype
int rsumlen
size_t rsumpad
std::vector< unsigned int > rsums

Detailed Description

Definition at line 31 of file MediaBlockList.h.


Constructor & Destructor Documentation

zypp::media::MediaBlockList::MediaBlockList ( off_t  filesize = off_t(-1))

Definition at line 33 of file MediaBlockList.cc.


Member Function Documentation

bool zypp::media::MediaBlockList::haveBlocks ( ) const [inline]

do we have a blocklist describing the file? set to true when addBlock() is called

Definition at line 39 of file MediaBlockList.h.

References haveblocks.

Referenced by zypp::media::MediaMultiCurl::multifetch().

size_t zypp::media::MediaBlockList::addBlock ( off_t  off,
size_t  size 
)

add a block with offset off and size size to the block list.

Note that blocks must be ordered and must not overlap. returns the block number.

Definition at line 44 of file MediaBlockList.cc.

Referenced by zypp::media::MetaLinkParser::getBlockList().

MediaBlock zypp::media::MediaBlockList::getBlock ( size_t  blkno) const [inline]

return the offset/size of a block with number blkno

Definition at line 52 of file MediaBlockList.h.

References blocks.

Referenced by zypp::media::multifetchrequest::multifetchrequest(), and zypp::media::multifetchworker::nextjob().

size_t zypp::media::MediaBlockList::numBlocks ( ) const [inline]

return the number of blocks in the blocklist

Definition at line 58 of file MediaBlockList.h.

References blocks.

Referenced by zypp::media::MediaMultiCurl::multifetch(), zypp::media::multifetchrequest::multifetchrequest(), and zypp::media::multifetchworker::nextjob().

void zypp::media::MediaBlockList::setFilesize ( off_t  newfilesize = off_t(-1)) [inline]

set / return the size of the whole file

Definition at line 65 of file MediaBlockList.h.

References filesize.

off_t zypp::media::MediaBlockList::getFilesize ( ) const [inline]

Definition at line 68 of file MediaBlockList.h.

References filesize.

Referenced by zypp::media::MediaMultiCurl::multifetch().

bool zypp::media::MediaBlockList::haveFilesize ( ) const [inline]

Definition at line 71 of file MediaBlockList.h.

References filesize.

Referenced by zypp::media::MediaMultiCurl::multifetch().

void zypp::media::MediaBlockList::setFileChecksum ( std::string  ctype,
int  cl,
unsigned char *  c 
)

set / verify the checksum over the whole file

Definition at line 54 of file MediaBlockList.cc.

Referenced by zypp::media::MetaLinkParser::getBlockList().

bool zypp::media::MediaBlockList::createFileDigest ( Digest digest) const

Definition at line 64 of file MediaBlockList.cc.

References zypp::Digest::create().

Referenced by zypp::media::MediaMultiCurl::checkFileDigest().

bool zypp::media::MediaBlockList::verifyFileDigest ( Digest digest) const
bool zypp::media::MediaBlockList::haveFileChecksum ( ) const [inline]

Definition at line 81 of file MediaBlockList.h.

References fsum, and fsumtype.

Referenced by zypp::media::MediaMultiCurl::checkFileDigest().

void zypp::media::MediaBlockList::setChecksum ( size_t  blkno,
std::string  cstype,
int  csl,
unsigned char *  cs,
size_t  cspad = 0 
)

set / verify the (strong) checksum over a single block

Definition at line 81 of file MediaBlockList.cc.

Referenced by zypp::media::MetaLinkParser::getBlockList().

bool zypp::media::MediaBlockList::checkChecksum ( size_t  blkno,
const unsigned char *  buf,
size_t  bufl 
) const

Definition at line 199 of file MediaBlockList.cc.

References zypp::Digest::update().

bool zypp::media::MediaBlockList::createDigest ( Digest digest) const
bool zypp::media::MediaBlockList::verifyDigest ( size_t  blkno,
Digest digest 
) const
bool zypp::media::MediaBlockList::haveChecksum ( size_t  blkno) const [inline]
void zypp::media::MediaBlockList::setRsum ( size_t  blkno,
int  rsl,
unsigned int  rs,
size_t  rspad = 0 
)

set / verify the (weak) rolling checksum over a single block

Definition at line 100 of file MediaBlockList.cc.

Referenced by zypp::media::MetaLinkParser::getBlockList().

bool zypp::media::MediaBlockList::checkRsum ( size_t  blkno,
const unsigned char *  buf,
size_t  bufl 
) const

Definition at line 190 of file MediaBlockList.cc.

unsigned int zypp::media::MediaBlockList::updateRsum ( unsigned int  rs,
const char *  bytes,
size_t  len 
) const

Definition at line 143 of file MediaBlockList.cc.

bool zypp::media::MediaBlockList::verifyRsum ( size_t  blkno,
unsigned int  rs 
) const

Definition at line 160 of file MediaBlockList.cc.

bool zypp::media::MediaBlockList::haveRsum ( size_t  blkno) const [inline]

Definition at line 103 of file MediaBlockList.h.

References rsumlen, and rsums.

void zypp::media::MediaBlockList::reuseBlocks ( FILE *  wfp,
std::string  filename 
)

scan a file for blocks from our blocklist.

if we find a suitable block, it is removed from the list

Definition at line 278 of file MediaBlockList.cc.

References zypp::media::fetchnext().

Referenced by zypp::media::MediaMultiCurl::doGetFileCopy().

std::string zypp::media::MediaBlockList::asString ( ) const

return block list as string

Definition at line 491 of file MediaBlockList.cc.

References zypp::str::form().

Referenced by zypp::media::operator<<().

void zypp::media::MediaBlockList::writeBlock ( size_t  blkno,
FILE *  fp,
const unsigned char *  buf,
size_t  bufl,
size_t  start,
std::vector< bool > &  found 
) const [private]

Definition at line 231 of file MediaBlockList.cc.

bool zypp::media::MediaBlockList::checkChecksumRotated ( size_t  blkno,
const unsigned char *  buf,
size_t  bufl,
size_t  start 
) const [private]

Definition at line 212 of file MediaBlockList.cc.

References zypp::Digest::update().


Member Data Documentation

Definition at line 122 of file MediaBlockList.h.

Referenced by getFilesize(), haveFilesize(), and setFilesize().

Definition at line 123 of file MediaBlockList.h.

Referenced by haveFileChecksum().

std::vector<unsigned char> zypp::media::MediaBlockList::fsum [private]

Definition at line 124 of file MediaBlockList.h.

Referenced by haveFileChecksum().

Definition at line 126 of file MediaBlockList.h.

Referenced by haveBlocks().

Definition at line 127 of file MediaBlockList.h.

Referenced by getBlock(), and numBlocks().

Definition at line 129 of file MediaBlockList.h.

Definition at line 130 of file MediaBlockList.h.

Referenced by haveChecksum().

Definition at line 131 of file MediaBlockList.h.

std::vector<unsigned char> zypp::media::MediaBlockList::chksums [private]

Definition at line 132 of file MediaBlockList.h.

Referenced by haveChecksum().

Definition at line 134 of file MediaBlockList.h.

Definition at line 135 of file MediaBlockList.h.

Referenced by haveRsum().

Definition at line 136 of file MediaBlockList.h.

std::vector<unsigned int> zypp::media::MediaBlockList::rsums [private]

Definition at line 137 of file MediaBlockList.h.

Referenced by haveRsum().


The documentation for this class was generated from the following files: