libzypp  11.13.5
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 35 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 43 of file MediaBlockList.h.

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.

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

return the offset/size of a block with number blkno

Definition at line 56 of file MediaBlockList.h.

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

return the number of blocks in the blocklist

Definition at line 62 of file MediaBlockList.h.

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

set / return the size of the whole file

Definition at line 69 of file MediaBlockList.h.

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

Definition at line 72 of file MediaBlockList.h.

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

Definition at line 75 of file MediaBlockList.h.

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

set / verify the checksum over the whole file

Definition at line 52 of file MediaBlockList.cc.

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

Definition at line 62 of file MediaBlockList.cc.

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

Definition at line 68 of file MediaBlockList.cc.

bool zypp::media::MediaBlockList::haveFileChecksum ( ) const
inline

Definition at line 85 of file MediaBlockList.h.

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 79 of file MediaBlockList.cc.

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

Definition at line 197 of file MediaBlockList.cc.

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

Definition at line 115 of file MediaBlockList.cc.

bool zypp::media::MediaBlockList::verifyDigest ( size_t  blkno,
Digest digest 
) const

Definition at line 121 of file MediaBlockList.cc.

bool zypp::media::MediaBlockList::haveChecksum ( size_t  blkno) const
inline

Definition at line 96 of file MediaBlockList.h.

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 98 of file MediaBlockList.cc.

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

Definition at line 188 of file MediaBlockList.cc.

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

Definition at line 141 of file MediaBlockList.cc.

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

Definition at line 158 of file MediaBlockList.cc.

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

Definition at line 107 of file MediaBlockList.h.

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 276 of file MediaBlockList.cc.

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

return block list as string

Definition at line 489 of file MediaBlockList.cc.

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 229 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 210 of file MediaBlockList.cc.


Member Data Documentation

off_t zypp::media::MediaBlockList::filesize
private

Definition at line 126 of file MediaBlockList.h.

std::string zypp::media::MediaBlockList::fsumtype
private

Definition at line 127 of file MediaBlockList.h.

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

Definition at line 128 of file MediaBlockList.h.

bool zypp::media::MediaBlockList::haveblocks
private

Definition at line 130 of file MediaBlockList.h.

std::vector<MediaBlock> zypp::media::MediaBlockList::blocks
private

Definition at line 131 of file MediaBlockList.h.

std::string zypp::media::MediaBlockList::chksumtype
private

Definition at line 133 of file MediaBlockList.h.

int zypp::media::MediaBlockList::chksumlen
private

Definition at line 134 of file MediaBlockList.h.

size_t zypp::media::MediaBlockList::chksumpad
private

Definition at line 135 of file MediaBlockList.h.

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

Definition at line 136 of file MediaBlockList.h.

std::string zypp::media::MediaBlockList::rsumtype
private

Definition at line 138 of file MediaBlockList.h.

int zypp::media::MediaBlockList::rsumlen
private

Definition at line 139 of file MediaBlockList.h.

size_t zypp::media::MediaBlockList::rsumpad
private

Definition at line 140 of file MediaBlockList.h.

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

Definition at line 141 of file MediaBlockList.h.


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