Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
rosbag::ChunkedFile Class Reference

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)
 
ChunkedFileoperator= (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< Streamread_stream_
 
boost::shared_ptr< StreamFactorystream_factory_
 
char * unused_
 extra data read by compressed stream More...
 
boost::shared_ptr< Streamwrite_stream_
 

Friends

class Stream
 

Detailed Description

ChunkedFile reads and writes files which contain interleaved chunks of compressed and uncompressed data.

Definition at line 51 of file chunked_file.h.

Constructor & Destructor Documentation

rosbag::ChunkedFile::ChunkedFile ( )

Definition at line 64 of file chunked_file.cpp.

rosbag::ChunkedFile::~ChunkedFile ( )

Definition at line 74 of file chunked_file.cpp.

rosbag::ChunkedFile::ChunkedFile ( const ChunkedFile )
private

Member Function Documentation

void rosbag::ChunkedFile::clearUnused ( )
private

Definition at line 223 of file chunked_file.cpp.

void rosbag::ChunkedFile::close ( )

close the file

Definition at line 137 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 135 of file chunked_file.cpp.

string rosbag::ChunkedFile::getline ( )
Todo:
add error handling

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 130 of file chunked_file.cpp.

bool rosbag::ChunkedFile::isOpen ( ) const

return true if file is open for reading or writing

Definition at line 134 of file chunked_file.cpp.

void rosbag::ChunkedFile::open ( std::string const &  filename,
std::string const &  mode 
)
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.

ChunkedFile& rosbag::ChunkedFile::operator= ( const ChunkedFile )
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.

Friends And Related Function Documentation

friend class Stream
friend

Definition at line 53 of file chunked_file.h.

Member Data Documentation

uint64_t rosbag::ChunkedFile::compressed_in_
private

number of bytes written to current compressed stream

Definition at line 95 of file chunked_file.h.

FILE* rosbag::ChunkedFile::file_
private

file pointer

Definition at line 93 of file chunked_file.h.

std::string rosbag::ChunkedFile::filename_
private

path to file

Definition at line 92 of file chunked_file.h.

int rosbag::ChunkedFile::nUnused_
private

number of bytes of extra data read by compressed stream

Definition at line 97 of file chunked_file.h.

uint64_t rosbag::ChunkedFile::offset_
private

current position in the file

Definition at line 94 of file chunked_file.h.

boost::shared_ptr<Stream> rosbag::ChunkedFile::read_stream_
private

Definition at line 101 of file chunked_file.h.

boost::shared_ptr<StreamFactory> rosbag::ChunkedFile::stream_factory_
private

Definition at line 99 of file chunked_file.h.

char* rosbag::ChunkedFile::unused_
private

extra data read by compressed stream

Definition at line 96 of file chunked_file.h.

boost::shared_ptr<Stream> rosbag::ChunkedFile::write_stream_
private

Definition at line 102 of file chunked_file.h.


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


rosbag_storage
Author(s): Dirk Thomas
autogenerated on Mon Nov 2 2020 03:52:19