ChunkedFile reads and writes files which contain interleaved chunks of compressed and uncompressed data. More...
#include <chunked_file.h>
Public Member Functions | |
ChunkedFile () | |
void | close () |
close the file More... | |
void | decompress (CompressionType compression, uint8_t *dest, unsigned int dest_len, uint8_t *source, unsigned int source_len) |
uint32_t | getCompressedBytesIn () const |
return the number of bytes written to current compressed stream More... | |
std::string | getFileName () const |
return path of currently open file More... | |
std::string | getline () |
uint64_t | getOffset () const |
return current offset from the beginning of the file More... | |
bool | good () const |
return true if hasn't reached end-of-file and no error More... | |
bool | isOpen () const |
return true if file is open for reading or writing More... | |
void | openRead (std::string const &filename) |
open file for reading More... | |
void | openReadWrite (std::string const &filename) |
open file for reading & writing More... | |
void | openWrite (std::string const &filename) |
open file for writing More... | |
void | read (void *ptr, size_t size) |
read size bytes from the file into ptr More... | |
void | seek (uint64_t offset, int origin=std::ios_base::beg) |
seek to given offset from origin More... | |
void | setReadMode (CompressionType type) |
void | setWriteMode (CompressionType type) |
void | swap (ChunkedFile &other) |
bool | truncate (uint64_t length) |
void | write (std::string const &s) |
void | write (void *ptr, size_t size) |
write size bytes from ptr to the file More... | |
~ChunkedFile () | |
Private Member Functions | |
ChunkedFile (const ChunkedFile &) | |
void | clearUnused () |
void | open (std::string const &filename, std::string const &mode) |
ChunkedFile & | operator= (const ChunkedFile &) |
Private Attributes | |
uint64_t | compressed_in_ |
number of bytes written to current compressed stream More... | |
FILE * | file_ |
file pointer More... | |
std::string | filename_ |
path to file More... | |
int | nUnused_ |
number of bytes of extra data read by compressed stream More... | |
uint64_t | offset_ |
current position in the file More... | |
boost::shared_ptr< Stream > | read_stream_ |
boost::shared_ptr< StreamFactory > | stream_factory_ |
char * | unused_ |
extra data read by compressed stream More... | |
boost::shared_ptr< Stream > | write_stream_ |
Friends | |
class | Stream |
ChunkedFile reads and writes files which contain interleaved chunks of compressed and uncompressed data.
Definition at line 51 of file chunked_file.h.
rosbag::ChunkedFile::ChunkedFile | ( | ) |
Definition at line 64 of file chunked_file.cpp.
rosbag::ChunkedFile::~ChunkedFile | ( | ) |
Definition at line 74 of file chunked_file.cpp.
|
private |
|
private |
Definition at line 223 of file chunked_file.cpp.
void rosbag::ChunkedFile::close | ( | ) |
close the file
Definition at line 135 of file chunked_file.cpp.
void rosbag::ChunkedFile::decompress | ( | CompressionType | compression, |
uint8_t * | dest, | ||
unsigned int | dest_len, | ||
uint8_t * | source, | ||
unsigned int | source_len | ||
) |
Definition at line 219 of file chunked_file.cpp.
uint32_t rosbag::ChunkedFile::getCompressedBytesIn | ( | ) | const |
return the number of bytes written to current compressed stream
Definition at line 195 of file chunked_file.cpp.
string rosbag::ChunkedFile::getFileName | ( | ) | const |
return path of currently open file
Definition at line 133 of file chunked_file.cpp.
string rosbag::ChunkedFile::getline | ( | ) |
Definition at line 207 of file chunked_file.cpp.
uint64_t rosbag::ChunkedFile::getOffset | ( | ) | const |
return current offset from the beginning of the file
Definition at line 194 of file chunked_file.cpp.
bool rosbag::ChunkedFile::good | ( | ) | const |
return true if hasn't reached end-of-file and no error
Definition at line 128 of file chunked_file.cpp.
bool rosbag::ChunkedFile::isOpen | ( | ) | const |
return true if file is open for reading or writing
Definition at line 132 of file chunked_file.cpp.
|
private |
Definition at line 82 of file chunked_file.cpp.
void rosbag::ChunkedFile::openRead | ( | std::string const & | filename | ) |
open file for reading
Definition at line 80 of file chunked_file.cpp.
void rosbag::ChunkedFile::openReadWrite | ( | std::string const & | filename | ) |
open file for reading & writing
Definition at line 78 of file chunked_file.cpp.
void rosbag::ChunkedFile::openWrite | ( | std::string const & | filename | ) |
open file for writing
Definition at line 79 of file chunked_file.cpp.
|
private |
void rosbag::ChunkedFile::read | ( | void * | ptr, |
size_t | size | ||
) |
read size bytes from the file into ptr
Definition at line 199 of file chunked_file.cpp.
void rosbag::ChunkedFile::seek | ( | uint64_t | offset, |
int | origin = std::ios_base::beg |
||
) |
seek to given offset from origin
Definition at line 181 of file chunked_file.cpp.
void rosbag::ChunkedFile::setReadMode | ( | CompressionType | type | ) |
Definition at line 169 of file chunked_file.cpp.
void rosbag::ChunkedFile::setWriteMode | ( | CompressionType | type | ) |
Definition at line 157 of file chunked_file.cpp.
void rosbag::ChunkedFile::swap | ( | ChunkedFile & | other | ) |
Definition at line 228 of file chunked_file.cpp.
bool rosbag::ChunkedFile::truncate | ( | uint64_t | length | ) |
Definition at line 201 of file chunked_file.cpp.
void rosbag::ChunkedFile::write | ( | std::string const & | s | ) |
void rosbag::ChunkedFile::write | ( | void * | ptr, |
size_t | size | ||
) |
write size bytes from ptr to the file
Definition at line 198 of file chunked_file.cpp.
|
friend |
Definition at line 53 of file chunked_file.h.
|
private |
number of bytes written to current compressed stream
Definition at line 95 of file chunked_file.h.
|
private |
file pointer
Definition at line 93 of file chunked_file.h.
|
private |
path to file
Definition at line 92 of file chunked_file.h.
|
private |
number of bytes of extra data read by compressed stream
Definition at line 97 of file chunked_file.h.
|
private |
current position in the file
Definition at line 94 of file chunked_file.h.
|
private |
Definition at line 101 of file chunked_file.h.
|
private |
Definition at line 99 of file chunked_file.h.
|
private |
extra data read by compressed stream
Definition at line 96 of file chunked_file.h.
|
private |
Definition at line 102 of file chunked_file.h.