Public Member Functions | Private Member Functions | Private Attributes | Friends
rosbag::ChunkedFile Class Reference

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

#include <chunked_file.h>

List of all members.

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< Streamread_stream_
boost::shared_ptr< StreamFactorystream_factory_
char * unused_
 extra data read by compressed stream
boost::shared_ptr< Streamwrite_stream_
bool writing_
 true iff file is opened for writing

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

Definition at line 63 of file chunked_file.cpp.

Definition at line 73 of file chunked_file.cpp.


Member Function Documentation

Definition at line 218 of file chunked_file.cpp.

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.

return the number of bytes written to current compressed stream

Definition at line 190 of file chunked_file.cpp.

return path of currently open file

Definition at line 130 of file chunked_file.cpp.

Todo:
add error handling

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.

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.

Definition at line 164 of file chunked_file.cpp.

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.


Friends And Related Function Documentation

friend class Stream [friend]

Definition at line 53 of file chunked_file.h.


Member Data Documentation

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.

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.

Definition at line 96 of file chunked_file.h.

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.

true iff file is opened for writing

Definition at line 90 of file chunked_file.h.


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


rosbag
Author(s): Tim Field, Jeremy Leibs, James Bowman
autogenerated on Mon Oct 6 2014 11:47:09