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 | |
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 | |
std::string | getFileName () const |
return path of currently open file | |
std::string | getline () |
uint64_t | getOffset () const |
return current offset from the beginning of the file | |
bool | good () const |
return true if hasn't reached end-of-file and no error | |
bool | isOpen () const |
return true if file is open for reading or writing | |
void | openRead (std::string const &filename) |
open file for reading | |
void | openReadWrite (std::string const &filename) |
open file for reading & writing | |
void | openWrite (std::string const &filename) |
open file for writing | |
void | read (void *ptr, size_t size) |
read size bytes from the file into ptr | |
void | seek (uint64_t offset, int origin=std::ios_base::beg) |
seek to given offset from origin | |
void | setReadMode (CompressionType type) |
void | setWriteMode (CompressionType type) |
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 | |
~ChunkedFile () | |
Private Member Functions | |
void | clearUnused () |
void | open (std::string const &filename, std::string const &mode) |
Private Attributes | |
uint64_t | compressed_in_ |
number of bytes written to current compressed stream | |
FILE * | file_ |
file pointer | |
std::string | filename_ |
path to file | |
int | nUnused_ |
number of bytes of extra data read by compressed stream | |
uint64_t | offset_ |
current position in the file | |
boost::shared_ptr< Stream > | read_stream_ |
boost::shared_ptr< StreamFactory > | stream_factory_ |
char * | unused_ |
extra data read by compressed stream | |
boost::shared_ptr< Stream > | write_stream_ |
bool | writing_ |
true iff file is opened for writing | |
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.
Definition at line 63 of file chunked_file.cpp.
Definition at line 73 of file chunked_file.cpp.
void rosbag::ChunkedFile::clearUnused | ( | ) | [private] |
Definition at line 218 of file chunked_file.cpp.
void rosbag::ChunkedFile::close | ( | ) |
close the file
Definition at line 132 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 214 of file chunked_file.cpp.
uint32_t rosbag::ChunkedFile::getCompressedBytesIn | ( | ) | const |
return the number of bytes written to current compressed stream
Definition at line 190 of file chunked_file.cpp.
string rosbag::ChunkedFile::getFileName | ( | ) | const |
return path of currently open file
Definition at line 130 of file chunked_file.cpp.
string rosbag::ChunkedFile::getline | ( | ) |
Definition at line 202 of file chunked_file.cpp.
uint64_t rosbag::ChunkedFile::getOffset | ( | ) | const |
return current offset from the beginning of the file
Definition at line 189 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 125 of file chunked_file.cpp.
bool rosbag::ChunkedFile::isOpen | ( | ) | const |
return true if file is open for reading or writing
Definition at line 129 of file chunked_file.cpp.
void rosbag::ChunkedFile::open | ( | std::string const & | filename, |
std::string const & | mode | ||
) | [private] |
Definition at line 81 of file chunked_file.cpp.
void rosbag::ChunkedFile::openRead | ( | std::string const & | filename | ) |
open file for reading
Definition at line 79 of file chunked_file.cpp.
void rosbag::ChunkedFile::openReadWrite | ( | std::string const & | filename | ) |
open file for reading & writing
Definition at line 77 of file chunked_file.cpp.
void rosbag::ChunkedFile::openWrite | ( | std::string const & | filename | ) |
open file for writing
Definition at line 78 of file chunked_file.cpp.
void rosbag::ChunkedFile::read | ( | void * | ptr, |
size_t | size | ||
) |
read size bytes from the file into ptr
Definition at line 194 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 176 of file chunked_file.cpp.
void rosbag::ChunkedFile::setReadMode | ( | CompressionType | type | ) |
Definition at line 164 of file chunked_file.cpp.
void rosbag::ChunkedFile::setWriteMode | ( | CompressionType | type | ) |
Definition at line 152 of file chunked_file.cpp.
bool rosbag::ChunkedFile::truncate | ( | uint64_t | length | ) |
Definition at line 196 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 193 of file chunked_file.cpp.
friend class Stream [friend] |
Definition at line 53 of file chunked_file.h.
uint64_t rosbag::ChunkedFile::compressed_in_ [private] |
number of bytes written to current compressed stream
Definition at line 92 of file chunked_file.h.
FILE* rosbag::ChunkedFile::file_ [private] |
file pointer
Definition at line 89 of file chunked_file.h.
std::string rosbag::ChunkedFile::filename_ [private] |
path to file
Definition at line 88 of file chunked_file.h.
int rosbag::ChunkedFile::nUnused_ [private] |
number of bytes of extra data read by compressed stream
Definition at line 94 of file chunked_file.h.
uint64_t rosbag::ChunkedFile::offset_ [private] |
current position in the file
Definition at line 91 of file chunked_file.h.
boost::shared_ptr<Stream> rosbag::ChunkedFile::read_stream_ [private] |
Definition at line 98 of file chunked_file.h.
boost::shared_ptr<StreamFactory> rosbag::ChunkedFile::stream_factory_ [private] |
Definition at line 96 of file chunked_file.h.
char* rosbag::ChunkedFile::unused_ [private] |
extra data read by compressed stream
Definition at line 93 of file chunked_file.h.
boost::shared_ptr<Stream> rosbag::ChunkedFile::write_stream_ [private] |
Definition at line 99 of file chunked_file.h.
bool rosbag::ChunkedFile::writing_ [private] |
true iff file is opened for writing
Definition at line 90 of file chunked_file.h.